在 C++ 中,为了确保单例线程安全,如何做到这一点



有人告诉我只是把单例写成本地类,这是真的吗?

我想知道为什么使用本地类可以确保线程安全。

#include <boost/utility.hpp>
class singleton : private boost::noncopyable {
public:
    static singleton& instance() {
        static singleton inst;
        return inst;
    }
private:
    singleton() = default;
    ~singleton() = default;
};

局部静态变量的构造保证是线程安全的。

此外,不惜一切代价避免单例。他们和全局一样可怕。

看看这篇文章:Java 中同步的对应功能是什么?
Java
中同步的功能基本上它指出C++没有用于锁定机制的语言级功能,
您需要使您的 singelton 类线程安全,尽管本文
http://en.wikipedia.org/wiki/Double-checked_locking 关于双重检查锁定模式
的声明,单例不需要锁定(包括 c 的示例)。

最新更新