shi*_*ing 6 c++ logging singleton design-patterns
由于使用Singleton模式实现记录器的泛滥示例,我刚刚为我的程序编写了一个简单的C++记录器.但是,由于已知着名的双重检查锁定方法不再是线程安全的,我想知道我是否应该:
1)忘记在这种情况下使用Singleton模式?
2)即使不安全,仍继续使用双重检查锁定?
3)对每次访问公共接口使用昂贵的纯同步锁定方法?
有什么建议?
Ark*_*nez 16
使用Meyers Singleton.如果你使用gcc,至少初始化是线程安全的.
class Singleton{
Singleton(){
//This is threadsafe in gcc, no mutex required
}
static Singleton * instance(){
static Singleton myinstance;
return &myinstance;
}
};
Run Code Online (Sandbox Code Playgroud)
gcc保护静态本地构造除非你用-fno-threadsafe-statics禁用,我最近在这里写了一下