解決懶漢式執行緒安全問題
/**
-
懶漢式單例模式:
-
1.只能創建一個物件,所以構造器必須是私有化的,只能在內部去創建一個物件
-
2.私有靜態屬性保存實體化物件,保證記憶體中只有這一個實體化物件
-
3.判斷實體化物件是否為空,如果為空則利用私有化構造器創建一個物件
-
4.同步代碼塊和同步方法的方式都可以解決當前的執行緒安全問題
*/
class Bank
{
//私有的靜態的屬性保存Bank類物件
private static Bank bank = null;//私有的構造器,防止Bank在類外面創建物件
private Bank(){};//公共的靜態的方法得到Bank類的唯一物件
public static /synchronized/ Bank getInstance()
{
if(bank == null)
{
synchronized (Bank.class)
{
if(bank == null)
{
/此處如果使用synchronized其他執行緒可能就會在此處等待,一旦上一個執行緒釋放鎖,其他執行緒還是會執行下一行代碼,仍然還是會出現執行緒安全問題/
/此處可能回出現執行緒安全問題*****/
bank = new Bank();
}
}
}
return bank;
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/198660.html
標籤:其他
