11 單例 多執行緒

2021-08-21 02:29:13 字數 1474 閱讀 9286

單例模式,最常見的就是飢餓模式,和懶漢模式,乙個直接例項化物件乙個呼叫方法時進行例項化物件。在多執行緒模式中,考慮到效能和執行緒安全問題。我們一般選擇下面兩種比較經典的單例模式,在效能提高的同時,又保證了執行緒安全。

餓漢式沒有執行緒安全問題,懶漢式需要雙重鎖定解決可能的執行緒安全問題,下面是對懶漢模式實現執行緒安全的方法。

餓漢式的缺點是類一載入就例項化,提前占用系統資源

doubble check instance    雙重校驗模式

static inner class    靜態內部載入類

靜態內部載入模式示例:

使用內部類的好處是,靜態內部類不會在單例載入時就載入,而是在呼叫getinstance()方法時才進行載入,達到了類似懶漢模式的效果,而這種方法又是執行緒安全的

packageedu.sdut.queue;

//執行緒安全

publicclassinnersingleton

publicstatic

innersingleton

getinstance()

}雙重校驗模式示例:

/***  雙重校驗模式,多執行緒列印出來的物件雜湊值是一樣的,說明是執行緒安全的單例模式

*@authorvision_txg**/

publicclassdubblesingletoncatch(exception e)

synchronized(dubblesingleton.class) }}

returnds;

}publicstaticvoidmain(string

args

) },

"t1"

);thread

t2=newthread(newrunnable()

},"t2"

);t1

.start();

t2.start();

}}

多執行緒 單例模式與多執行緒

一 前言 如何使單例模式遇到多執行緒是安全的 正確的?我們在學習設計模式的時候知道單例模式有懶漢式和餓漢式之分。簡單來說,餓漢式就是在使用類的時候已經將物件建立完畢,懶漢式就是在真正呼叫的時候進行例項化操作。二 餓漢式 多執行緒 public class myobject public static...

多執行緒 多執行緒 單例設計模式

多執行緒之 單例設計模式 餓漢式 多執行緒安全 1 餓漢式 class single static single getinstance public void show class a implements runnable class test catch interruptedexceptio...

單例和多執行緒

單例模式,最常見的就是飢漢模式和懶漢模式,乙個是直接例項化物件,乙個是在呼叫方法時進行例項化物件。在多執行緒模式中,考慮到效能和安全問題,我們一般選擇下面兩種比較經典的單例模式 1.靜態內部類 package com.aruisi.innofarm 靜態內部類 author zmk public c...