JVM内存模型操作的多余步load和write有什么用?

关于JVM内存模型的描述可以看这个链接:http://flyingdutchman.iteye.com/blog/1856802
lock(锁定):将一个变量标识为被一个线程独占状态。
unlock(解锁):将一个变量从独占状态释放出来,释放后的变量才可以被其他线程锁定。
read(读取):将一个变量的值从主内存传输到工作内存中,以便随后的load操作。
load(载入):把read操作从主内存中得到的变量值放入工作内存的变量的副本中。
use(使用):把工作内存中的一个变量的值传给执行引擎,每当虚拟机遇到一个使用到变量的指令时都会使用该指令。
assign(赋值):把一个从执行引擎接收到的值赋给工作内存中的变量,每当虚拟机遇到一个给变量赋值的指令时,都要使用该操作。
store(存储):把工作内存中的一个变量的值传递给主内存,以便随后的write操作。
write(写入):把store操作从工作内存中得到的变量的值写到主内存中的变量。

我的问题是read可以直接把主内存中的变量放到线程的工作内存来,为什么要搞个load创建一个副本?read的时候不就相当于给主内存中对应的变量创建了一个副本吗?而且write也是一个废操作,可以直接写入的啊?


拉风的咖菲猫
浏览 1267回答 0
0回答
打开App,查看更多内容
随时随地看视频慕课网APP