首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

std:mutex异常"unlock of unowned mutex"

2013-03-14 
std::mutex错误unlock of unowned mutex在Visual Studio 2012中,执行程序:#include mutex#include th

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需要在同一线程中进行处理吧

热点排行