文章目录
第一章 多线程并发编程第二节 线程安全问题1.2.1 线程安全之可见性问题多线程中的问题从内存结构到内存模型工作内存缓存指令重排序内存模型的含义Shared Variables共享变量描述线程操作的定义对于同步的规则定义happens-before先行发生原则final在JMM中的处理Word Tearing字节处理double和long的特殊处理volatile关键字总结 1.2.2 线程安全之原子操作竞态条件与临界区共享资源不可变对象CAS机制J.U.C包内的原子操作封装类CAS的三个问题 1.2.3 JAVA 锁相关同步关键字synchronized同步关键字加锁原理轻量级锁偏向锁到轻量级锁重量级锁-监视器(monitor) Lock的核心APIReadWriteLock 第三节 J.U.C并发编程包详解1.3.1 AQS抽象队列同步器猛戳这里快速前往学习笔记(一)
第一章 多线程并发编程
第二节 线程安全问题
1.2.1 线程安全之可见性问题
多线程中的问题
所见非所得无法肉眼去检测程序的准确性不同的运行平台有不同的表现错误很难重现从内存结构到内存模型
工作内存缓存
指令重排序
内存模型的含义
Shared Variables共享变量描述
线程操作的定义
对于同步的规则定义
happens-before先行发生原则
final在JMM中的处理
Word Tearing字节处理
double和long的特殊处理
volatile关键字总结
1.2.2 线程安全之原子操作
竞态条件与临界区
共享资源
不可变对象
CAS机制
有兴趣的童鞋可以了解下Unsafe的源码,类似于直接操作内存的方法。
J.U.C包内的原子操作封装类
CAS的三个问题
1.2.3 JAVA 锁相关
同步关键字synchronized
同步关键字加锁原理
轻量级锁
偏向锁到轻量级锁
重量级锁-监视器(monitor)
Lock的核心API
ReadWriteLock
第三节 J.U.C并发编程包详解
1.3.1 AQS抽象队列同步器
学习中。。。未完待续