![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
操作系统
文章平均质量分 77
爱吃芝麻球
一定是练功的时候差不多差不多,等到关键时候就总是差一点!
个人博客 https://cc922.github.io/
展开
-
unique_lock与lock_guard区别
使用方式lock_guard:没有提供加锁和解锁的接口。通过构造函数和析构函数控制锁的作用范围,创造对象的时候加锁,离开作用域的时候解锁;unique_lock:提供了lock()和unlock()接口,能记录现在处于上锁还是没上锁状态。可以通过构造函数和析构函数控制锁的作用范围。在构造函数中延时加锁,在需要的时候手动加锁和解锁。在析构的时候,会根据当前状态来决定是否要进行解锁(lock_guard就一定会解锁)。赋值操作unique_lock和lock_guard都不能复制l原创 2022-05-09 20:34:47 · 6255 阅读 · 0 评论 -
死锁的产生条件及解决办法
目录一、死锁产生的条件二、死锁解决的方法1.死锁防止1.1 破坏互斥条件1.2 破坏持有和等待条件1.3 破坏不可剥夺条件1.4 破坏等待循环条件2.死锁避免3.死锁检测每种资源类只有一个资源的死锁检测:每个资源类中有多种资源的情况:死锁检测算法4.死锁恢复一、死锁产生的条件死锁需要同时满足以下四个条件才会发生:互斥条件持有并等待条件不可剥夺条件环路条件互斥:指的是共享资源的互斥。主要是因为多个线程都想访问同一个共享资源,但是该共享资源在某个时刻只能由一个进程访问。持有并等待:某进转载 2022-05-07 17:35:46 · 6384 阅读 · 0 评论