CPU缓存与Java内存模型
2020-08-11 14:18:53 0 举报
CPU缓存与Java内存模型
作者其他创作
大纲/内容
6 write
read是把变量从shared memory读入CPU local memory,或者说从内存读入CPU cache,write反之。load是把变量从CPU local memory读入JVM stack,你可以认为它是把数据从CPU cache读入到“JVM寄存器”,store反之。
CPU总线嗅探机制
CPU-2
FLAG = true
主内存
Thread-02(执行引擎)
Lock
CPU-1
工作内存 (高速缓存)FLAG = false -> true
3 use
5 store
4 assign
2 load
1 read
变量副本
FLAG = false 失效
FLAG = false
工作内存(高速缓存)FLAG = false
FLAG = false -> true
示例代码public class MainTest { private static volatile boolean FLAG = false; public static void main(String[] args) throws InterruptedException { // Thread-01 new Thread(() ->{ while (!FLAG) { } System.out.println(\"循环结束---\"); }).start(); Thread.sleep(1000); // Thread-02 new Thread(() ->{ System.out.println(\"开始设置标记\"); FLAG = true; System.out.println(\"标记设置完成\"); }).start(); System.out.println(\"主线程结束\"); }}
总线(MESI缓存一致性协议)
Thread-01(执行引擎)
0 条评论
回复 删除
下一页