JVM内存模型和CPU内存模型的关系是什么
来源:13-16 本章重点

qq_慕丝0528892
2019-11-03
JVM内存模型(主内存, 工作内存)和CPU内存模型(L!缓存, L2缓存)是什么样的关系?
我们为什么解决了JVM内存模型中的可见性问题,
就能同时解决CPU中L1L2缓存的可见性问题呢?
不会出现使用volatile修饰的变量, 写入时虽然刷新到了JVM的主内存
但是在CPU上只是存在core1的L2缓存中还没刷新到L1缓存, 而另一个线程在core2上读L2缓存或则L1缓存时却不知道core1中L2中的值变化吗?
写回答
1回答
-
JMM保证了如果用了volatile修饰,那么就可以解决可见性问题。不会出现使用volatile修饰的变量, 写入时虽然刷新到了JVM的主内存,但是在CPU上只是存在core1的L2缓存中还没刷新到L1缓存, 而另一个线程在core2上读L2缓存或则L1缓存时却不知道core1中L2中的值变化的情况,因为JMM就是做这个的,它就是为了保证可见性的。JMM实现的时候,就是处理了这些问题,你可以搜一下“内存栅栏”或者更的资料来深入学习JMM的实现原理。
012019-11-05
相似问题
Java内存模型没讲吗?
回答 1
cpu核数和
回答 1