这个问题被关闭的重复,从而使问题更加明确和重新打开的问题:线程安全单例实现:最新错误?
的问题是:
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