單例模式定義:
保證一個類僅有一個實例,並提供一個它的全局訪問點。例如操作系統只能有一個窗口管理器,數據庫只能存在一個實例等。
單例模式實現的三個要點:
(1)有一個私有的靜態指針變量指向類的唯一實例。
(2)私有的構造方法
(3)公有的靜態的獲取實例的方法。
具體實現:
class Singleton
{
private:
static Singleton *instance;
Singleton();
public:
static Singleton *getInstance()
{
if(instance==NULL)
instance=new Singleton();
return instance;
}
}
如何保證線程安全:
即保證線程同步和互斥訪問的方法:
臨界區,信號量,加鎖等。