读书人

std:mutex异常quot;unlock of unowned mut

发布时间: 2013-03-14 10:33:15 作者: rapoo

std::mutex错误"unlock of unowned mutex"
在Visual Studio 2012中,执行程序:


#include <mutex>
#include <thread>

// unlock of unowned mutex
int main()
{
std::mutex lock;
std::thread thread_a([&lock] { lock.lock(); });
std::this_thread::sleep_for(std::chrono::milliseconds(2000));
lock.unlock();
thread_a.join();
return 0;
}


在Debug版本中,lock.unlock()这一行提示错误"unlock of unowned mutex"

微软说这问题已修复:
http://connect.microsoft.com/VisualStudio/feedback/details/688797

请各路大神指点一下,我应该如何使用std::mutex
C++11
[解决办法]
线程没你这么写的吧。
[解决办法]
mutex要求加锁解锁必须在同一线程吧?!
[解决办法]
std::mutex是采用CRITICAL_SECTION实现的,但在Debug版本中会分配一结构用于检测是否在同一线程解锁!!!
[解决办法]
mutex需要在同一线程中进行处理吧

读书人网 >C++

热点推荐