【发布时间】:2012-06-20 22:14:53
【问题描述】:
简单问题:Java 内存/同步模型是否保证原子指针写入?也就是说,如果我们有竞争线程:
String shared;
thread1()
{
shared = "a";
}
thread2()
{
shared = "hello world";
}
同时启动,shared 是否始终保证为null、"a" 或"hello world"?
【问题讨论】:
-
注意,一般情况下,引用所引用的对象可能没有完全初始化。
String的正常实现应该没问题,尽管规范在这类事情上不是很好。此外,实际上不可变的类型很少。如果您尝试依赖这类事情,您可能做错了什么(尽管这不是不理解原因的好理由)。
标签: java multithreading synchronization thread-safety atomic