我正在阅读《Java 并发实践》一书。
在阅读有关 JMM 的章节时,它说:
JMM 为程序中的所有操作定义了一个名为“happens-before”的部分排序。为了保证执行动作B的线程可以看到动作A的结果(无论A和B是否发生在不同的线程中), A和B之间必须存在happens-before关系。
但是,我无法使用任何“发生前”规则来派生“初始化安全”规则:
初始化安全保证对于正确构造的对象,所有线程都将看到构造函数设置的最终字段的正确值,无论对象如何发布。
我们可以使用happens-before规则来推导“初始化安全”规则,还是这两个概念只是同一级别的抽象?
30秒到达战场
相关分类