gpt4 book ai didi

java - 同步和易变的 JMM

转载 作者:行者123 更新时间:2023-11-30 03:57:45 28 4
gpt4 key购买 nike

我多次看到这样的结构:

class OneTimeWriter {
volatile Object o;

void synchronized set(Object o) {
if(this.o == null) this.o = o;
}

Object get() {
return this.o;
}
}

我们在同步本身的开始/结束处有读/写成员。那么,既然 synchronized 本身就具有释放/获取语义,我们可以从 o 中删除 volatile 吗?

最佳答案

除非get同步;否则,将非 null 内容放入字段的 setter 与 get 调用之间不存在发生前关系。

关于java - 同步和易变的 JMM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22703646/

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