首页IT科技lock the guide(关于lock_guard和unique_lock)

lock the guide(关于lock_guard和unique_lock)

时间2025-06-21 03:34:11分类IT科技浏览3550
导读:unique_lock condition_variable...

unique_lock condition_variable

1:lock_guard 和 unique_lock

2:condition_variable wait 和 notify_all 方式1 std::mutex mtx; mtx.lock(); .. ... mtx.unlock();// 容易出现死锁 方式2 lock_gurad<std::mutex> lock(mtx) 出作用域              ,自动析构(释放锁),缺陷:不能用在函数参数传递或者返回过程中. 只能用在简单的临界区代码段的互斥操作中. 方式3 unique_lock不仅可以使用在简单的临界代码段的互斥操作中,还可以使用在函数调用过程中 unique_lock<std::mutex>(mtx) 关于condition_variable cv cv.wait(unique_lock);// 会做两件事1:使线程进入等待状态 2:unique_lock.unlock 把mtx给释放掉 所以简单的场景,不涉及线程通信时,可以使用 lock_guard, 但是涉及函数调用或线程通信时 使用 unique_lock 关于cv.notify_all() 是通知在cv上等待的线程,条件成立里,可以起来干活了,其他在cv上等待的线程,从等待状态=>阻塞状态=》去抢夺锁=》抢到锁后开始运行

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
无线路由器怎么安装使用?(无线路由器如何安装 无线路由器安装方法图文介绍)