文章摘要:java中内存间交互操作是什么
java中内存间交互操作指的是一种交互协议,比如一个变量如何从主内存拷贝到工作内存中,又怎样从工作内存同步到主 […]
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操作从工作内存中得到的变量的值写到主内存中的变量。