【发布时间】:2014-07-16 15:02:46
【问题描述】:
我不太清楚为什么std::unique_lock<std::mutex> 比只使用普通锁有用。我正在查看的代码中的一个示例是:
{//aquire lock
std::unique_lock<std::mutex> lock(queue_mutex);
//add task
tasks.push_back(std::function<void()>(f));
}//release lock
为什么会比这个更受欢迎
queue_mutex.lock();
//add task
//...
queue_mutex.unlock();
这些sn-ps代码完成同样的事情吗?
【问题讨论】:
-
想想在您的后一个示例中
lock/unlock调用之间引发的异常... -
一旦您理解了这个问题,您可能会对以下链接感兴趣。 stackoverflow.com/questions/20516773/…
标签: c++ c++11 threadpool mutex stdthread