java中內存間交互操作指的是一種交互協議,比如一個變量如何從主內存拷貝到工作內存中,又怎樣從工作內存同步到主內存,這些操作主要是java內存模型定義了8種原子操作來完成的,這8種原子分別是“lock、unclock、read、load、use、assign、store、write”。
具體內容如下:
1、關于主內存與工作內存之間的交互協議,即一個變量如何從主內存拷貝到工作內存,如何從工作內存同步到主內存中的實現細節。
2、Java內存模型定義了8種原子操作來完成:
lock:將一個變量標識為被一個線程獨占狀態;
unclock:將一個變量從獨占狀態釋放出來,釋放后的變量才可以被其他線程鎖定;
read:將一個變量的值從主內存傳輸到工作內存中,以便隨后的load操作;
load:把read操作從主內存中得到的變量值放入工作內存的變量的副本中;
use:把工作內存中的一個變量的值傳給執行引擎,每當虛擬機遇到一個使用到變量的指令時都會使用該指令;
assign:把一個從執行引擎接收到的值賦給工作內存中的變量,每當虛擬機遇到一個給變量賦值的指令時,都要使用該操作;
store:把工作內存中的一個變量的值傳遞給主內存,以便隨后的write操作;
write:把store操作從工作內存中得到的變量的值寫到主內存中的變量。