C++類單例設計模式範例及注意要點

單例模式是爲了讓類在整個進程全局只有一個實例對象,在多線程時有幾個點需要注意:

  • 單例中成員方法在多線程訪問時是線程安全的
  • 單例中如果有成員變量,成員方法對改成員變量是隻讀訪問,那也是線程安全的
  • 單例中如果有成員變量,成員方法對改成員變量是既要讀取又要修改,那就需要對該方法進行多線程訪問加鎖考慮。
// SingleTon.h
class SingleTon{
public:
    static SingleTon& GetInstance();

private:
    SingleTon() = default;
    SingleTon(const SingleTon& other) = delete;
    SingleTon& operator=(const SingleTon&) = delete;
    ~SingleTon();
    static SingleToninstance;
};

// SingleTon.cpp
SingleTon& SingleTon::GetInstance()
{
    static SingleTon instance;
    return instance;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章