concurrent包的实现(并发编程的艺术)

分析concurrent包的源代码实现,会发现一个通用化的实现模式:

 首先,声明共享变量为volatile。

然后,使用CAS的原子条件更新来实现线程之间的同步。

同时,配合以volatile的读/写和CAS所具有的volatile读和写的内存语义来实现线程之间的通信。

AQS,非阻塞数据结构和原子变量类(java.util.concurrent.atomic包中的类),这些concurrent 包中的基础类都是使用这种模式来实现的

而concurrent包中的高层类又是依赖于这些基础类来实现的

concurrent包的实现(并发编程的艺术)