我想將我的代碼從boost提升到std-threads。雖然我認爲它應該是非常直接的,但我遇到了奇怪的問題。下面的代碼是使用VS2012激發斷言「f:\ dd \ vctools \ crt_bld \ self_x86 \ crt \ src \ thr \ mutex.c(131):解除無主互斥鎖」的最小示例。尋找這個帶來了older bug reports哪(我認爲)應該已經修復。C++ 11 VS2012中的線程/互斥鎖實現 - 斷言觸發
int result = 0;
std::mutex m;
m.lock();
std::thread t1([&](){
result = 42;
m.unlock();
});
m.lock();
std::cout << result << std::endl;
t1.join();
有人可以向我解釋爲什麼這不起作用嗎?
感謝
你正在鎖定'm'兩次? –