1、多线程随机打印结果

2、多线程方法的内存图解

3、Thread类获取线程名称的两种方式


4、创建线程的第二种方式Runnable

5、Thread和Runnable接口的区别

6、匿名内部类实现线程创建


7、线程安全问题

8、解决线程安全问题




9、并发与并行



10、(volatile)实现线程同步
volatile关键字为域变量的访问提供了一种免锁机制只需在account前面加上volatile修饰,即可实现线程同步。
class Bank {
//需要同步的变量加上volatile
private volatile int account = 100;
public int getAccount() {
return account;
}
//这里不再需要synchronized
public void save(int money) {
account += money;
}
}
(1)多线程中的非同步问题主要出现在对域的读写上,如果让域自身避免这个问题,则就不需要修改操作该域的方法。
(2)volatile不能保证原子操作,因此volatile不能代替synchronized
(4)每次要线程要访问volatile修饰的变量时都是从内存中读取,而不是从缓存当中读取,因此每个线程访问到的变量值都是一样的。这样就保证了同步。
10、java.util.concurrent包来支持同步

2054

被折叠的 条评论
为什么被折叠?



