多线程工作原理

与内存间的交互

Java内存中定义了以下8种操作,来完成一个变量如何从主内存拷贝到工作内存、如何从工作内存同步回主内存之间的实现细节,其中虚拟机实现保证下面的的每种操作都是原子的、不可再分的。

Lock

作用于主内存的变量,它把一个变量标识为一条线程独占的状态。

Unlock

作用于主内存的变量,它把一个变量从锁定状态释放,这时可以被其它
线程锁定。

Read

作用于主内存变量,它把一个变量的值从主内存传输到线程的工作内存
中,以便随后的load动作使用。

Load

作用于工作内存的变量,它把read操作从主内存中得到的变量值放入工
作内存的变量副本中。

Use

作用于工作内存的变量,它把工作内存中一个变量的值传递给执行引擎,
每当虚拟机遇到一个需要使用到变量的值的字节码指令时将会执行这个
操作。

Assign

作用于工作内存的变量,它把一个从执行引擎接收到的的值赋值给
工作内存的变量,每当虚拟机遇到一个给变量赋值的字节码指令时
执行这个操作。

Store

作用于工作内存的变量,它把工作内存中一个变量的值传送到主内
存中,以便后面的write操作使用。

Write

作用于主内存的变量,它把store操作从工作内存中得到的变量值 放
入主内存的变量中

未完待续。。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值