亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

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
永定县| 介休市| 凤翔县| 化州市| 句容市| 中牟县| 望城县| 长阳| 尼勒克县| 永年县| 岫岩| 鱼台县| 阿尔山市| 凤翔县| 旬阳县| 台南市| 周口市| 宜昌市| 介休市| 汝阳县| 黄山市| 乾安县| 滦南县| 蒙城县| 肇州县| 南开区| 年辖:市辖区| 桐柏县| 长治县| 阳原县| 滁州市| 吴忠市| 梅州市| 怀来县| 雅安市| 富宁县| 大安市| 视频| 滁州市| 裕民县| 邳州市|