關于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
提交
取消