共計 517 個字符,預(yù)計需要花費 2 分鐘才能閱讀完成。
雙重鎖單例模式是一種在多線程環(huán)境下保證只有一個實例被創(chuàng)建的方法。下面是一個使用雙重鎖單例模式的 Java 代碼示例:
public class Singleton {private volatile static Singleton instance;
private Singleton() {}
public static Singleton getInstance() {if (instance == null) {synchronized (Singleton.class) {if (instance == null) {instance = new Singleton();}
}
}
return instance;
}
}
在上面的代碼中,getInstance() 方法首先檢查實例是否已經(jīng)創(chuàng)建,如果沒有創(chuàng)建,才會進入同步塊。在進入同步塊之后,再次檢查實例是否已經(jīng)創(chuàng)建,這是為了避免多個線程同時進入同步塊時,創(chuàng)建多個實例的問題。使用 volatile 關(guān)鍵字可以確保在多線程環(huán)境下,instance 變量的可見性和有序性,從而避免了由于指令重排導致的問題。
雙重鎖單例模式可以在多線程環(huán)境下保證只有一個實例被創(chuàng)建,并且在實例被使用之前不會進行實例化,從而提高了性能。
丸趣 TV 網(wǎng) – 提供最優(yōu)質(zhì)的資源集合!
正文完