C++线程安全的单例模式实现

class Singleton
{
public:
	static Singleton* getInstance()
	{
		if (instance == NULL)
		{
			//mutex.lock();
			if (instance == NULL)
			{
				instance = new Singleton();
			}
			//mutex.unlock();
		}
		return instance;
	}
private:
	static Singleton* instance;
	//Mutex mutex;
};
Singleton* Singleton::instance = NULL;


Mutex取绝于平台。。。
注意:两次instance == null的判断不可少。才能保证多线程安全,这种方法也叫Double-Check Locking(双重锁定)

你可能感兴趣的:(C/C++)