設計模式 單例模式(Singleton)

2022-04-03 22:14:31 字數 1255 閱讀 7464

定義確保乙個類僅有乙個例項,並提供乙個訪問它的全域性訪問點

優點:在記憶體中只有乙個物件,節省了記憶體空間

示例

singleton.cs    

寫法一:非執行緒安全

public

class

singleton

//////

例項化物件

/// ///

public

static

singleton getinstance()

return

singleton;}}

view code

寫法二:簡單執行緒安全

多執行緒程式中,多個執行緒同時訪問singleton類,呼叫getinstance()方法,可能會建立多個物件,這種情況我們該如何處理呢?

遇到這種情況我們可以給程序上一把鎖(lock是確保當乙個執行緒位於**的臨界區時,另乙個執行緒不進入臨界區。如果其他執行緒試圖進入鎖定的**,則它將一直等待,直到該物件被釋放[msdn])。

public

class

singleton

//////

例項化物件

/// ///

public

static

singleton getinstance()

}

return

singleton;}}

view code   

寫法三:雙重鎖定執行緒安全  

public

class

singleton

//////

例項化物件

/// ///

public

static

singleton getinstance()} }

return

singleton;}}

view code

客戶端呼叫:

protected

void page_load(object

sender, eventargs e)

}

測試結果

輸出:兩個物件是同乙個示例

Java設計模式之單例模式(Singleton)

前言 在總結okhttp的時候,為了管理網路請求使用到了單例模式,晚上實在沒啥狀態了,靜下心來學習總結一下使用頻率最高的設計模式單例模式。單例模式 單例模式確保某個類只有乙個例項,而且自行例項化並向整個系統提供這個例項。單例特點 單例分類 1 懶漢單例 1 非執行緒安全實現 public class...

設計模式 建立型模式 單例模式 Singleton

4種單例模式 單執行緒單例 類class single private static single sin null public static single createinstance return sin 呼叫 console.writeline 單執行緒單例模式 single sin sin...

大話設計模式二十一 單例模式(Singleton)

一.單例模式定義 保證乙個類僅有乙個例項,並提供乙個訪問它的全域性訪問點。二.結構和說明 singleton負責建立singleton類自己的唯一例項,並提供乙個getinstance方法,讓外部來訪問這個類的唯一例項。三.呼叫示例圖 實現 四.控制例項個數 簡單演示如何擴充套件單例模式,控制例項數...