Java内存模型
背景
产生原因
处理器与内存速度矛盾
解决速度矛盾
高速缓存
产生问题
多个处理器涉及同一块主内存
缓存一致性
遵循协议
是什么
屏蔽硬件和操作系统内存访问差异
与线程
包括
变量
实例字段
静态字段
数组对象
工作内存
线程变量,主内存副本
主内存
存储所有变量
实现线程
内核线程
用户线程
用户线程加轻量级进程
线程调度
协同式
抢占式
线程状态
新建new
运行Runnable
等待Waiting
阻塞Blocked
结束Terminated
主要目标
定义程序中变量的访问规则
即在虚拟机中从内存存取变量
特征
原子性
内存间交互8种操作
lock/unlock
synchronized
read/load
use/assgin
store/write
可见性
volatile
有序性
volatile
禁止指令重排序
synchronized
lock
先行发生原则