我知道在構造函數完成之後,最終的實例變量會安全地發佈到所有線程。但是,我想知道這是否仍然安全,如果最終的實例變量包含對包含非最終實例變量的對象的引用。在構造函數完成之後,這個次要的,非final實例變量永遠不會改變。請看下面的例子: public class NonFinalImmutable {
private Iterable<String> list = Collections.u
的我的問題是給帖子: https://shipilev.net/blog/2014/safe-public-construction/ public class UnsafeDCLFactory {
private Singleton instance;
public Singleton get() {
if (instance == null) { // read
以下代碼 public class Coordination {
private volatile int counter = 0;
public static void main(String ... args) throws Exception {
new Coordination().volatileWithCoordination();
}