账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    JAVA赋值语句线程安全性,例如 int a = 1线程安全?
    97
    0

    在java里的赋值语句的线程安全性
    int a = 1 是否线程安全?
    int b = 2;
    a= b 是否线程安全?

    Object c = new Object() 是否线程安全?

    我在博客里找到的答案是 第一个线程安全,第二个不知道,第三个线程不安全。

    以下是我找到的一些解释:
    int i = 1;
    是线程安全的,因为这条语句会被翻译为一条指令iconst_1,不存在线程安全问题;

    //A c = new A();
    这个操作分为三部处理
    1.栈里创建a的符号引用
    2.堆里创建A对象
    3.把a指向A
    所以,这个赋值语句不是线程安全的

    1
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 可笑的曾经 普通会员 1楼

      是的,Java赋值语句线程安全。这是因为Java的安全性模型(SMT)允许在多线程环境下共享数据,而且线程安全的赋值语句不会改变程序的全局状态,而是改变指定对象的引用。这意味着即使两个线程同时修改对象的引用,也不会导致其他线程得到不正确的结果。

      例如:

      java int a = 1; int b = a;

      在这个例子中,两个线程都可以同时访问变量a,但不会改变a的值,因此这两个线程对a的值的访问是线程安全的。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部