第一个问题 我在《深入理解java虚拟机》书中第12章没有找到
那么 我们暂且可以理解这JMM的同步或者是不同步的概念
首先你应该已经了解到了吧 线程之间的通讯方式就位两种:共享内存和消息传递。而JAVA用的是共享内存模型。
而在共享内存模型中,并发线程的同步是必须要程序员显示的去控制的(synchronized,lock等),所以第一个你提出的问题应该是程序员自己控制的。
第二个问题 JVM中 共享内存模型是怎样共享的,是由线程本身私有的空间(个人觉得应该是JAVA栈)公享变量副本主动赋值到主内存中,再由另一个内存在主内存中取得 而后复制到自己的工作内存中 这也就解释了你对read 和load 的疑问