对可变对象的易失性引用 - 对象字段的更新是否对所有线程可见
2022-09-03 13:53:43
...没有额外的同步?下面的 Tree 类旨在由多个线程访问(它是单例,但不是通过枚举实现的)
class Tree {
private volatile Node root;
Tree() {
root = new Node();
// the threads are spawned _after_ the tree is constructed
}
private final class Node {
short numOfKeys;
}
}
- 在没有任何显式同步的情况下,对字段的更新是否对读取器线程可见(请注意,读取器和写入器都必须获取
ReentrantReadWriteLock
的实例 - 每个节点的相同实例 - 但除此之外)?如果不是,那么挥发性就足够了吗?numOfKeys
numOfKeys
- 更改根目录是否简单到(除了调用 Tree 构造函数的主线程之外,只有编写器线程会更改根目录)
root = new Node()
相关:
编辑:对后Java 5语义感兴趣