多執行緒 DCL單例模式

2021-09-28 00:10:05 字數 662 閱讀 6579

package others;

/** * dcl單例模式:懶漢式套路基礎上加入併發控制,保證在多執行緒環境下,對外存在乙個物件

* 1、構造器私有化-->避免外部new構造器

* 2、提供私有的靜態屬性-->儲存物件的位址

* 3、提供公共的靜態方法-->獲取屬性

* * @author

* */

public

class

doublecheckedlocking

//3.提供公共的靜態方法-->獲取屬性

public

static doublecheckedlocking getinstance()

synchronized

(doublecheckedlocking.

class)}

return instance;

}public

static

void

main

(string[

] args));

t.start()

; system.out.

println

(doublecheckedlocking.

getinstance()

);}}

dcl單例模式

有時候我們需要對外呈現只有乙個物件,簡單來說就是講物件私有化,像資料那樣,只能通過get方法得到。這裡使用doublechecking來進行該操作,即在get方法裡面加入兩個判斷該物件是否為空,同時為了避免指令重排導致執行緒獲得空物件,加入volatile,而且私有化構造器。public class...

DCL單例模式

單例模式 外部不能new物件,類的內部有且只有乙個物件,僅僅用乙個靜態方法與外界進行互動。public class doublecheckedlocking 外部只能通過這個get方法和此物件進行交流 public static doublecheckedlocking getinstance 繫結...

多執行緒 單例模式

單例模式 是非常典型常用的一種設計模式 乙份資源只能被申 載一次 單例模式的方法建立的類在當前程序中只有乙個例項 資源的程式初始化的時候就去載入,後面使用的時候直接使用,使用的時候比較流暢,有可能會載入用不上的資源,導致程式初始化時間比較慢。include class single instance...