Tag: 安全发布

Javamultithreading和安全发布

在阅读“ 实践中的Java并发 ”和“ 实践中的OSGI ”之后,我发现了一个非常有趣的特定主题; 安全出版物。 以下是来自JCIP: 要安全地发布对象,对象的引用和对象的状态必须同时对其他线程可见。 正确构造的对象可以通过以下方式安全地发布 从静态初始化器初始化对象引用。 将引用存储到一个易变的字段中。 将参考存储在最终字段中。 将引用存储到由( 同步 )locking正确保护的字段中。 我的第一个问题:有多lessJava开发人员知道这个(问题)? 有多less真实世界的Java应用程序真的跟着这个,这真的是一个真正的问题? 我有一种感觉,99%的已实现的JVM在那里没有那个“邪恶”,即一个线程是不能保证的(实际上它实际上(几乎)“不可能”)看到陈旧的数据只是因为引用没有跟随上面的“安全出版习语”。