Java内存模型中的可见性、原子性和有序性

Java内存模型中的可见性、原子性和有序性

 1.原子性:指一个操作是不可中断的。即使是在多个线程一起执行的时候,一个操作一旦开始,就不会被其他线程干扰。(用锁来保证原子性)

 2.可见性:指当一个线程修改了某一个共享变量的值时,其他线程是否能够立即知道这个修改。Java内存模型是通过在变量修改后将新值同步回主内存,在变量读取前从主内存刷新变量值,这种依赖主内存作为传递媒介的方法来实现可见性的。(重点是volatile)

 3.有序性:程序在执行时,可能会进行指令重排,重排后的指令与原指令的顺序未必一致。对于一个线程来说,它看到的指令执行顺序一定是一致的,即指令重排有一个基本前提,要保证串行语义的一致性。之所以要做指令重排,是为了尽量少地中断流水钱,减少中断从而提高CPU处理性能。(涉及Happen-Before原则)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

loser与你

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值