我想知道为什么使用本地类可以确保线程安全。
答案 0 :(得分:1)
#include <boost/utility.hpp>
class singleton : private boost::noncopyable {
public:
static singleton& instance() {
static singleton inst;
return inst;
}
private:
singleton() = default;
~singleton() = default;
};
本地静态变量的构造保证是线程安全的。
另外,不惜一切代价避免单身人士。它们和全局变量一样可怕。
答案 1 :(得分:0)
看一下这篇文章:what is correspoding feature for synchronized in java?
在for java中为feature-for-synchronized-
基本上它表明C ++没有锁定机制的语言级功能,你需要使你的singelton类线程安全,尽管这个关于双重检查锁定模式的http://en.wikipedia.org/wiki/Double-checked_locking < br />陈述,单身人士不需要锁定(c包含一个例子)。