1、什么是JAVA 内存模型
Java Memory Model (JAVA 内存模型)描述线程之间如何通过内存(memory)来进行交互。 具体说来, JVM中存在一个主存区(Main Memory或Java Heap Memory),对于所有线程进行共享,而每个线程又有自己的工作内存(Working Memory),工作内存中保存的是主存中某些变量的拷贝,线程对所有变量的操作并非发生在主存区,而是发生在工作内存中,而线程之间是不能直接相互访问,变量在程序中的传递,是依赖主存来完成的。
Java内存模型的抽象示意图如下:

从上图来看,线程A与线程B之间如要通信的话,必须要经历下面2个步骤:
1、线程A把本地内存A中更新过的共享变量刷新到主内存中去。
2、线程B到主内存中去读取线程A之前已更新过的共享变量。
下面通过示意图来说明这两个步骤:


本文探讨了Java内存模型的原理,强调了线程间内存可见性的重要性。通过示例解释了线程A和线程B通信时的步骤,说明了内存不可见可能导致的问题。并介绍了synchronized关键字的作用,它是如何确保线程安全和内存可见性的。
最低0.47元/天 解锁文章
1227

被折叠的 条评论
为什么被折叠?



