執行緒安全的C 單例模式

2021-09-05 10:24:06 字數 1248 閱讀 1424

/*

執行緒安全單例模式:

1. 區域性靜態懶漢式

2. 餓漢式

3. 加鎖懶漢式

*/

//1.區域性靜態成員 懶漢式

//適合c++11,保證靜態區域性變數的初始化是執行緒安全的。如果是c++98就不能用這個方法。

class

singleton

;singleton

(const singleton &);

singleton&

operator=(

const singleton &);

public

:static singleton getinstance()

//test do something

void

dosomething()

};

//2.餓漢式

//優點:執行緒安全,不用加鎖效率高

//確定:類載入時就初始化,浪費記憶體。

class

singleton2

;public

:static singleton2*

getinstance()

//test do something

void

dosomething()

};//外部初始化 before invoke main

singleton2* singleton2::m_instance =

newsingleton2()

;

//3. 加鎖 懶漢式

class

singleton3

;static singleton3* m_instance;

static mutex m_mutex;

public

:static singleton3*

getinstance()

return m_instance;

}//test do something

void

dosomething()

};singleton3* singleton3::m_instance =

null

;mutex singleton3::m_mutex;

測試**

int

main()

c 多執行緒單例模式 執行緒安全C 單例模式

我對此處記錄的單例模式有一些疑問 http us library ff650316.aspx 以下 摘自該文章 using system public sealed class singleton private static volatile singleton instance private ...

C 執行緒安全的單例模式

廢話不多說,常用的 積澱下來。一 懶漢模式 即第一次呼叫該類例項的時候才產生乙個新的該類例項,並在以後僅返回此例項。需要用鎖,來保證其執行緒安全性 原因 多個執行緒可能進入判斷是否已經存在例項的if語句,從而non thread safety.使用double check來保證thread safe...

C 執行緒安全的單例模式

一 懶漢模式 即第一次呼叫該類例項的時候才產生乙個新的該類例項,並在以後僅返回此例項。需要用鎖,來保證其執行緒安全性 原因 多個執行緒可能進入判斷是否已經存在例項的if語句,從而non thread safety.使用double check來保證thread safety.但是如果處理大量資料時,...