Posts 《Java并发编程实战》第15章原子变量与非阻塞同步机制
Post
Cancel

《Java并发编程实战》第15章原子变量与非阻塞同步机制

java.util.concurrent包的许多类中,例如SemaphoreConcurrentLinkedQueue,都提供了比synchronized机制更高的性能和可伸缩性。

15.1 锁的劣势

15.2 硬件对并发的支持

15.2.1 比较并交换

15.2.2 非阻塞的计数器

15.2.3 JVM对CAS的支持

15.3 原子变量类

共有12个原子变量类,可分为4组:标量类(Scalar)、更新器类、数组类以及复合变量类。最常用的原子变量就是标量类:AtomicIntegerAtomicLongAtomicBoolean以及AtomicReference。所有这些类都支持CAS,此外,AtomicIntegerAtomicLong还支持算数运算符。(要想模拟其他基本类型的原子变量,可以将short或byte等类型与int类型进行转换,以及使用floatToBits或doubleToLongBits来转换浮点数。)

15.3.1 原子变量是一种“更好的volatile”

15.3.2 性能比较:锁与原子变量

15.4 非阻塞算法

15.4.1 非阻塞的栈

15.4.2 非阻塞的链表

15.4.3 原子的域更新器

15.4.4 ABA问题

This post is licensed under CC BY 4.0 by the author.

《Java并发编程实战》第14章构建自定义的同步工具

《Java并发编程实战》第16章Java内存模型

Comments powered by Disqus.