單例碰到多執行緒

2021-08-16 09:24:42 字數 963 閱讀 3742

# include

using namespace std;

/*懶漢式碰到多執行緒,是執行緒不安全

餓汗式是執行緒安全的,用餓汗式

推薦用餓汗式,

懶漢式的解決方法是加鎖

*///懶漢式

class singleton_lazy

public:

static singleton_lazy* getinstance()

return psingleton;

}private:

static singleton_lazy* psingleton;

};//類外初始化

singleton_lazy* singleton_lazy::psingleton = null;

//餓漢式

class singleton_hungry

public:

static singleton_hungry* getinstance()

# if 0

//推薦不要增加這個功能,因為是單例模式如果釋放了

//就沒了,全域性就這乙個變數。

static void freespace()

}# endif

//巢狀類

class garbo

~garbo()}};

private:

static singleton_hungry* psingleton;

static garbo  garbo;

};//類外初始化

singleton_hungry* singleton_hungry::psingleton = new singleton_hungry;

//注意要這樣寫

singleton_hungry::garbo singleton_hungry::garbo = garbo();

int main(int argc, char *argv)

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

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