多執行緒 單例模式

2021-10-10 15:24:55 字數 968 閱讀 5351

單例模式:是非常典型常用的一種設計模式

乙份資源只能被申**載一次/單例模式的方法建立的類在當前程序中只有乙個例項

資源的程式初始化的時候就去載入,後面使用的時候直接使用,使用的時候比較流暢,有可能會載入用不上的資源,導致程式初始化時間比較慢。

#include

class

single_instance

private

:static

int _data;};

int single_instance::_data =10;

//靜態成員變數需要在類外初始化

資源在使用的時候發現還沒載入,則申**載

初始化比較快,第一次執行某個模組的時候比較慢,因為需要載入資源

#include

#include

#include

std::mutex g_mutex;

class

single_instance

g_mutex.

unlock()

;}return _data;

}private

://1. static 保證所有物件使用同乙份資源

//2. volatile 防止編譯器過度優化

注意事項:

單例模式多執行緒

單例模式 確保某個類只有乙個例項化物件 import time class a from threading import lock instance none lock lock def new cls,args,kwargs 加鎖確保時間片不發生輪轉 with cls.lock ifnot cl...

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

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

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

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