目录
1Java内存模型
1.1主内存与工作内存
1.2内存间交互操作
8种操作还需要满足一定规则
1.3对于volatile型变量的特殊规则
1.4对于long和double型变量的特殊规则
1.5原子性、可见性与有序性
- 原子性
- 可见性
final域不会被重排序
- 有序性
1.6happens-before原则
2Java与线程
2.1线程的实现
线程实现的三种方式
使用内核线程
使用用户线程
用户线程加轻量级进程混合实现
Windows和Linux中,使用内核线程(一对一)
由于Java线程映射到系统线程,因此阻塞唤醒线程开销很大,加锁是重量级操作
2.2Java线程调度
协同式、抢占式
Java采用抢占式
2.3线程状态转换