本篇参考书籍:《编程思想》,《java并发编程实战》,《深入理解java虚拟机》
参考网站:Jakob Jenkov并发指南,操作系统相关知识
以下是将这些知识串联起来用visio画的图,加入了一些自己的判断理解
线程安全的表现和根因
下图是想表达影响线程安全的三个表现以及导致这些表现的根因
CPU-高速缓存-主存
下图是CPU和主存之间进行数据交互的过程,因为速度差距,中间加入高速缓存
缓存一致性协议
下图表示加入了高速缓存后,在进行读写时可能会导致缓存不一致,因此出现了"缓存一致性协议"来解决
JMM及规范
JMM
CPU和JMM对比看
里面加入了我的一些理解做对比
三个关键字和他们能保证的特性
OS和VM层面的线程状态对比
操作系统和jvm线程状态对比,VM层面参考JDK源码,Thread类的内部类:枚举State