【发布时间】:2021-11-19 07:40:52
【问题描述】:
场景:
class Foo {
volatile Bar bar;
}
class Bar {
int baz;
}
for (int i = 0; i < n; i++) {
Bar bar = new Bar();
bar.baz = 1;
foo.bar = bar;
}
如果 Bar 不是不可变的(baz 不是 final 或 volatile)但 baz 在 bar 分配后永远不会改变,是否保证 baz 变量始终可见?
【问题讨论】:
-
你在哪里运行
for循环? -
@Renis1235 任何地方,在读取值的线程以外的某个线程中
-
你有什么问题?
-
@Digsb 问题在代码下
标签: java thread-safety