我见过 C++ 中的经典单例类。我的理解是这个实现是线程安全的。然后我读到,如果这个类包含在 2 个 DLL 中并且两者都加载到 1 个应用程序中,您将获得 2 个静态变量副本,因此是 S 类的 2 个实例,因此它不是完全线程安全的。
那么解决方案还是使用互斥锁?(我知道这是 C# 中的常见做法,详见:http ://csharpindepth.com/Articles/General/Singleton.aspx
class S
{
public:
static S& getInstance()
{
static S instance;
return instance;
}
private:
S();
S(S const&); // Don't Implement
void operator=(S const&); // Don't implement
};