中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

C++怎么實現Singleton模式

c++
小億
69
2024-01-19 01:06:04
欄目: 編程語言

在C++中實現Singleton模式可以通過以下幾種方式:

  1. 餓漢式單例模式:在程序啟動時就創建單例對象,并且提供一個全局的訪問點。
class Singleton {
private:
    static Singleton* instance;
    Singleton() {}

public:
    static Singleton* getInstance() {
        return instance;
    }
};

Singleton* Singleton::instance = new Singleton();
  1. 懶漢式單例模式:在第一次訪問時才創建單例對象。
class Singleton {
private:
    static Singleton* instance;
    Singleton() {}

public:
    static Singleton* getInstance() {
        if (instance == nullptr) {
            instance = new Singleton();
        }
        return instance;
    }
};

Singleton* Singleton::instance = nullptr;
  1. 雙重檢查鎖定單例模式:在第一次訪問時才創建單例對象,并且使用雙重檢查鎖定機制確保線程安全。
#include <mutex>

class Singleton {
private:
    static Singleton* instance;
    static std::mutex mtx;
    Singleton() {}

public:
    static Singleton* getInstance() {
        if (instance == nullptr) {
            std::lock_guard<std::mutex> lock(mtx);
            if (instance == nullptr) {
                instance = new Singleton();
            }
        }
        return instance;
    }
};

Singleton* Singleton::instance = nullptr;
std::mutex Singleton::mtx;

這些是常見的實現Singleton模式的方式,選擇其中一種方式根據具體需求和線程安全性要求進行選擇。

0
全南县| 青海省| 新宁县| 扎赉特旗| 曲阜市| 泸定县| 拜城县| 綦江县| 开封县| 龙江县| 礼泉县| 钟祥市| 泗洪县| 册亨县| 临湘市| 门源| 合水县| 五莲县| 阿拉尔市| 瑞安市| 武宁县| 江川县| 银川市| 长治县| 读书| 辽中县| 满洲里市| 长岛县| 方山县| 寻甸| 阿勒泰市| 从江县| 修水县| 宕昌县| 交口县| 堆龙德庆县| 白朗县| 安乡县| 辽阳市| 色达县| 沧州市|