Java 内存模型 JMM
2020-11-22 23:13:26 3 举报
volatile 原理
作者其他创作
大纲/内容
read
Thread 1while(!initflag)
initflag=false->initflag=true
thread 2 使用initflag -true,然后assign给工作内存initflag=true
工作内存initflag=false->true
load
Thread1---> while (!initflag){}Thread 2 ---> initflag =true
lock &store 通过总线写回主内存
use
总线(MESI 一致性协议)
initflag=false -->initflag=true
load 到工作内存
initflag=false
write&unlock 写完内存后释放锁
CPU总线嗅探机制(监听) 坚监听到总线改动会让工作内存失效
assign
工作内存initflag=false-->失效-->initflag=true
主内存
失效工作内存
Thread 2initflag = true
重新read
0 条评论
下一页