基本概念:
1、可视性: 即线程之间的可见性。一个线程修改的状态对另一个线程是可见的。也就是一个线程修改的结果。另一个线程马上就能看到。(volatile关键字确保了应用中的可视性。如果把一个域声明为volatile的,那么只要对这个域产生了写操作,那么所有的读操作就都可以看到这个修改。即使使用了本地缓存,事实上:volatile域会立即被写入到主存中。)
2、原子性操作:不能被线程调度机制中断的操作;一旦操作开始,那么它一定可以在可能发生的“上下文切换”之前执行完毕。
3、临界区:有时,你只是希望防止多个线程同事访问方法内部的部分代码而不是访问整个方法。通过这种方式分离出来的代码段被称为临界区。(使用synchronized关键字)
4、线程本地存储:是一种自动化机制,可以为使用相同变量的每个不同的线程都创建不同的存储,这个可以根除对变量的共享。(由ThreadLocal实现 P690)
1、可视性: 即线程之间的可见性。一个线程修改的状态对另一个线程是可见的。也就是一个线程修改的结果。另一个线程马上就能看到。(volatile关键字确保了应用中的可视性。如果把一个域声明为volatile的,那么只要对这个域产生了写操作,那么所有的读操作就都可以看到这个修改。即使使用了本地缓存,事实上:volatile域会立即被写入到主存中。)
2、原子性操作:不能被线程调度机制中断的操作;一旦操作开始,那么它一定可以在可能发生的“上下文切换”之前执行完毕。
3、临界区:有时,你只是希望防止多个线程同事访问方法内部的部分代码而不是访问整个方法。通过这种方式分离出来的代码段被称为临界区。(使用synchronized关键字)
4、线程本地存储:是一种自动化机制,可以为使用相同变量的每个不同的线程都创建不同的存储,这个可以根除对变量的共享。(由ThreadLocal实现 P690)