为了账号安全,请及时绑定邮箱和手机立即绑定

Java中的哪些操作被认为是原子的?

Java中的哪些操作被认为是原子的?

喵喵时光机 2019-08-27 10:33:17
Java中的哪些操作被认为是原子的?Java中的哪些操作被认为是原子的?
查看完整描述

3 回答

?
手掌心

TA贡献1942条经验 获得超3个赞

  • 除long和double之外的所有原始类型的赋值

  • 所有参考作业

  • 所有volatile变量的赋值

  • java.concurrent.Atomic * classes的所有操作

也许还有更多。看看jls

正如评论中所指出的,原子性并不意味着可见性。因此,虽然保证另一个线程不会看到部分写入int,但它可能永远不会看到新值。

long和double上的操作也是普通的64位CPU 原子,尽管不能保证。另请参阅此功能请求


查看完整回答
反对 回复 2019-08-27
?
海绵宝宝撒

TA贡献1809条经验 获得超8个赞

在Java中,32位或更小数量的读写保证是原子的。
原子,我们的意思是每个动作都在一个步骤中发生,不能被打断。因此,当我们有多线程应用程序时,读写操作是线程安全的,不需要进行同步。

例如,以下代码是线程安全的:

public class ThreadSafe   
  {  
    private int x;  
    public void setX(int x)  
          {
           this.x = x;
           } 
  }


查看完整回答
反对 回复 2019-08-27
  • 3 回答
  • 0 关注
  • 769 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号