关于JVM内存模型的描述可以看这个链接:http://flyingdutchman.iteye.com/blog/1856802。lock(锁定):将一个变量标识为被一个线程独占状态。unlock(解锁):将一个变量从独占状态释放出来,释放后的变量才可以被其他线程锁定。read(读取):将一个变量的值从主内存传输到工作内存中,以便随后的load操作。load(载入):把read操作从主内存中得到的变量值放入工作内存的变量的副本中。use(使用):把工作内存中的一个变量的值传给执行引擎,每当虚拟机遇到一个使用到变量的指令时都会使用该指令。assign(赋值):把一个从执行引擎接收到的值赋给工作内存中的变量,每当虚拟机遇到一个给变量赋值的指令时,都要使用该操作。store(存储):把工作内存中的一个变量的值传递给主内存,以便随后的write操作。write(写入):把store操作从工作内存中得到的变量的值写到主内存中的变量。我的问题是read可以直接把主内存中的变量放到线程的工作内存来,为什么要搞个load创建一个副本?read的时候不就相当于给主内存中对应的变量创建了一个副本吗?而且write也是一个废操作,可以直接写入的啊?
添加回答
举报
0/150
提交
取消