gpt4 book ai didi

java - 读取对象的 volatile 引用是否保证原子读取其属性的最新值?

转载 作者:搜寻专家 更新时间:2023-10-31 08:23:12 27 4
gpt4 key购买 nike

假设所有属性都不是longdouble,读取对象的volatile 引用是否保证原子读取最新值它的属性?

这是一个具体的例子。

public class Foo {
private int bar;

public int getBar() {
return this.bar;
}

public void setBar(int bar) {
this.bar = bar;
}
}

public class Baz {
private volatile Foo foo;
}

线程 A 可以随时写入 FooBar 属性。线程 B 只能读取 FooBar 属性。如果线程B通过Baz访问Bar属性,是否会读取Bar的最新值?

最佳答案

简而言之,没有。 volatile 关键字仅适用于 foo 引用,不适用于底层对象的字段。

因此您也需要将 bar 标记为 volatile 以实现您描述的结果。

关于java - 读取对象的 volatile 引用是否保证原子读取其属性的最新值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16903045/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com