91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

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
施甸县| 广饶县| 五大连池市| 大港区| 岑巩县| 吉水县| 阿城市| 格尔木市| 揭东县| 金华市| 湟中县| 错那县| 望奎县| 黄平县| 秦安县| 张家港市| 石泉县| 临西县| 栖霞市| 德保县| 那曲县| 扶风县| 富源县| 瓦房店市| 芜湖县| 望江县| 定兴县| 秀山| 察雅县| 禄丰县| 红原县| 遵义县| 项城市| 明水县| 曲水县| 义乌市| 仁寿县| 苏州市| 富民县| 宝山区| 新兴县|