猛戳这里快速前往学习笔记(一)
第一章 多线程并发编程
第二节 线程安全问题
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抽象队列同步器
学习中。。。未完待续