這個問題被關閉的重複,從而使問題更加明確和重新打開的問題:線程安全單例實現:最新錯誤?
的問題是:
1)低於線程執行安全與否?
2)什麼是用下面的方法的問題(除了複雜性)
class Singleton
{
public:
static void init(){
static Singleton _single ;
cout<<"Called"<<endl;
m_Singleton = &_single ;
}
static Singleton & instance()
{
static pthread_once_t once_flag = PTHREAD_ONCE_INIT;
cout<<(unsigned int)PTHREAD_ONCE_INIT<<endl;
pthread_once(&once_flag, &Singleton::init) ;
return *m_Singleton;
}
static Singleton* m_Singleton;
private:
Singleton(){}
Singleton (const Singleton&) ;
Singleton operator=(Singleton&) ;
};
我上的東西計數不對的實現,因此沒有在任何地方建議
感謝
更好,但不要用單身 – ScarletAmaranth
@ScarletAmaranth:您搜索的設計模式,你會發現單是使用最廣泛的討論。我可能不會使用它,但肯定想了解下面的挑戰和問題。 – mukeshkumar
只是好奇,爲什麼有票要關閉這個問題? – mukeshkumar