gpt4 book ai didi

c++ - unique_lock 与使用互斥锁相比有什么特殊用途?

转载 作者:可可西里 更新时间:2023-11-01 18:04:25 29 4
gpt4 key购买 nike

我不太清楚为什么 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();

这些代码片段是否完成了同样的事情?

最佳答案

[Do] these snippets of code accomplish the same thing?

没有。

第一个会在 block 结束时释放锁,不管 block 是什么。如果临界区以 breakcontinuereturngoto< 退出,第二个将不会在最后释放锁、异常或我忘记的任何其他类型的非本地跳转。

关于c++ - unique_lock 与使用互斥锁相比有什么特殊用途?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23893835/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com