美文网首页
volatile 引用

volatile 引用

作者: 不存在的里皮 | 来源:发表于2019-06-12 03:25 被阅读0次

    参考

    Java - Volatile reference object and its member fields visibility

    正文

    java引用只能保证引用本身的可见性,而不能保证其成员变量的可见性。
    如果要做到这一点,需要用synchronized方法同时设置这些变量,并用synchronized方法返回这些变量的数组。
    synchronized的底层还是基于操作系统的mutex lock,所以,我们还是要利用锁的机制,也就是说,用ReentrantLock去设置和获取两个变量也是可以的。

    public synchronized void setValues(int a, int b) {
        this.a = a;
        try {
            TimeUnit.MICROSECONDS.sleep(1);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        this.b = b;
    }
    
    public synchronized int[] getValues() {
        return new int[]{a, b};
    }
    

    相关文章

      网友评论

          本文标题:volatile 引用

          本文链接:https://www.haomeiwen.com/subject/hjbhfctx.html