【发布时间】:2014-10-23 01:55:39
【问题描述】:
据我了解,如果 Singleton::instance() 在不同的线程中调用,如果两个调用都引用实际实例的第一个构造,则可能会出现一些问题。
因此,如果我将第一个 Singleton::instance() 调用移动到甚至没有创建其他线程的程序的最开头,现在这会是线程安全的吗?
当然,它的所有成员变量在使用时都受到互斥守卫的保护。
【问题讨论】:
-
通常的线程安全单例安装模式是 Scott Meyer 的(请以see here 为例)。
-
像往常一样,你的首要任务应该是认真思考你是否真的需要它。我会说至少 90% 的时间是净损失,不仅增加了它自身的复杂性,而且至少与不使客户端代码更复杂一样频繁。
标签: c++ multithreading