java虚拟机-----主内存和工作内存8中操作协议

1、lock表示把一个变量标识为一个线程独占状态

2、unlock表示释放lock的锁定状态,解锁

3、read把主内存的变量读取到工作内存中,方便写入

4、load把read指定读取过来的变量写入到副本中

5、use:把工作内存中的变量传入给执行引擎使用,比如工作变量i,需要被执行引擎执行i+1操作,必须要先让工作内存将i的值传给执行引擎,执行引擎才能使用执行i+1操作

6、assign:表示执行引擎对工作内存中变量进行赋值的时候,将值传入工作内存中,本来工作内存中i变量为1,执行引擎执行了i=3操作后,会将结果3赋值给工作变量中的i

7、store:把工作内存中的变量传给主内存,但并未写入主内存

8、write:把store传过来的变量写入到主内存中对应的变量

java内存模型规定了执行这八种基本操作的时候对应了几个规则

1、不允许从主内存中读取了数据后不载入数据,也不运行把工作内存中的数据传入主内存中后,主内存不写入

2、不允许工作内存中的变量数据改变了后不同步回主内存

3、不允许一个工作内存中的变量没有进行任何修改,又同步回主内存

4、一个新变量必须重主内存中产生

5、一个变量在任何时候都只能被一个线程锁定,不能被多个线程锁定,但是一个线程可以锁定一个变量多次,锁定几次就必须解锁几次

6、没有锁定的变成不允许调用unload操作,就是没有被锁就不能去解锁,也不能去解锁其他线程锁定的变量

7、解锁变量前必须先进行变量的同步,既先同步回主内存中去

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值