我已经看过有关此问题的帖子,但我仍在努力解决这个问题。这样做是否可以实现安全的singelton?我正在使用互斥锁,静态成员并返回其引用。
#include <mutex>
using namespace std;
mutex mtx;
class MySingleton {
private:
MySingleton();
public:
MySingleton& getInstance() {
mtx.lock();
static MySingleton instance;
mtx.unlock();
return instance;
}
};
答案 0 :(得分:2)
这样可以实现安全的singelton吗?
它超调了。只需摆脱互斥锁并写下:
static MySingleton& getInstance() {
static MySingleton instance;
return instance;
}
第一次调用该函数时,保证instance
的线程安全创建。