【发布时间】:2015-11-06 17:03:42
【问题描述】:
我无法确定奇怪的崩溃来自何处,但它没有确定性地发生的事实让我怀疑线程。
我有这样的事情:
class MyClass
{
MyClass() : mExit(false), mThread(&MyClass::ThreadMain,this)
{}
void ThreadMain()
{
unique_lock<mutex> lock(mMutex);
mCondition.wait(lock, [&] { return mExit; });
}
std::thread mThread;
std::mutex mMutex;
std::condition_variable mCondition;
bool mExit;
};
显然这是非常简化的,但我不确定崩溃发生在哪里,所以我想问一下这个设置是否会导致问题?例如,一切初始化的顺序是什么 - 例如,ThreadMain 是否有可能在类的实例完全构造之前运行?
这看起来像是我在网上看到的一些例子,但我不确定它是否绝对安全。
【问题讨论】:
标签: c++ multithreading stl