std::unique_lock使用代码案例
时间: 2023-12-08 18:35:51 浏览: 158
c++多线程写法与案例 c++多线程保存点云
std::unique_lock是C++11中提供的一种锁的封装类,它提供了比std::lock_guard更加灵活的锁管理方式。下面是一个使用std::unique_lock的代码案例:
std::mutex my_mutex;
std::vector<int> msgRecvQueue;
void inMsgRecvQueue() {
for (int i = 0; i < 100000; ++i) {
std::unique_lock<std::mutex> sbguard1(my_mutex);
msgRecvQueue.push_back(i);
}
}
在这个例子中,我们定义了一个互斥量my_mutex和一个存储int类型数据的vector容器msgRecvQueue。在函数inMsgRecvQueue中,我们使用std::unique_lock对my_mutex进行了加锁,并向msgRecvQueue中添加了100000个元素。由于std::unique_lock的灵活性,我们可以在需要的时候手动释放锁,而不是像std::lock_guard那样在作用域结束时自动释放锁。
阅读全文