gpt4 book ai didi

java - volatile 关键字也适用于非基元

转载 作者:太空狗 更新时间:2023-10-29 23:04:23 26 4
gpt4 key购买 nike

我不确定 volatile 关键字是否也应该用于非基元。我有一个类成员,它由一个线程设置/分配,并由另一个线程访问。我应该将此成员声明为 volatile 吗?

private /* volatile */ Object o;

public void setMember(Object o) {
this.o = o;
}

public Object getMember() {
return o;
}

这里,setMember(...) 被一个线程调用,getMember() 被另一个线程调用。

例如,如果它是 boolean 值,则答案为是。

我使用的是 Java 1.4,本例中的成员是只读的。所以在这种情况下我只关心可见性,因此我的问题是关于 volatile 关键字。

最佳答案

是 - volatile 对引用类型字段的意义与它对原始类型字段的意义完全相同。除了在引用类型的情况下,字段引用的对象的成员必须设计用于多线程访问。

关于java - volatile 关键字也适用于非基元,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10608202/

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