From 530e4627d0e5a95cdcbc91cbda1f02c8a70465b7 Mon Sep 17 00:00:00 2001 From: 1AoB <2453468739@qq.com> Date: Sun, 21 Apr 2024 16:18:20 +0800 Subject: [PATCH] c++ --- .../post/2024-04-19面试复盘/index.zh-cn.md | 65 ++++++++++++++++++ .../2024-04-19面试复盘/图片/1713687466179.png | Bin 0 -> 50497 bytes 2 files changed, 65 insertions(+) create mode 100644 exampleSite/content/post/2024-04-19面试复盘/图片/1713687466179.png diff --git a/exampleSite/content/post/2024-04-19面试复盘/index.zh-cn.md b/exampleSite/content/post/2024-04-19面试复盘/index.zh-cn.md index f5f2da8..80d200d 100644 --- a/exampleSite/content/post/2024-04-19面试复盘/index.zh-cn.md +++ b/exampleSite/content/post/2024-04-19面试复盘/index.zh-cn.md @@ -246,6 +246,71 @@ auto_ptr是C++98中引入的第一个智能指针,但是由于他的不安全 加锁:**互斥锁**,**读写锁**,cpp中特有的智能锁 +死锁; + +- 产生的条件:互斥,请求保存,不可抢占,循环等待 + +- 可能产生的情况分为两种: + + + + 1)第一种是:用到了一把锁造成的死锁,产生的原因是操作失误,加了锁后忘记解锁了 + 或者是一把锁被加了两次造成的死锁,你再去解锁就解不开了… + 或者是你在解锁之前,因为满足某种条件提前return了 + + ``` + eg: + void func(){ + 上锁 + if(条件)return; + 解锁 + } + ``` + + + + 说是忘记,但有时候就是容易但这样的错误,而且在项目开发的时候调试起来没那么容易,比如说我们最容易犯的函数循环嵌套的死锁问题;函数a调用了函数b,但是函数a和b内部都用到了同一把锁,保护相同的共享资源,导致一个线程同时上两次锁,这个问题还是比较隐晦的,我遇到过一次 + + + + + + 2)另一种是用到了多把锁, + 当多个线程访问了多块共享资源,就需要多把锁,(共享资源可以是一个全局变量,也可能是一段堆内存,还可能是一个静态资源,或者是在main函数中申请的一段栈空间,因为只要main函数不结束,这个资源就不会被回收,所以也可以做这个共享资源),所以说每个共享资源都需要一把锁。 + 比如说两个共享资源两把锁,资源x被锁a锁住了,资源y被锁b锁住了,在资源x没有解锁的情况下,资源x去访问资源y,而资源y也在没有解锁的情况下去访问资源x,这样就僵持不下 + +- 死锁避免的解决办法: + +1. 第一种方法:你在访问其他共享资源时,需要先把你目前持有共享资源解开。 +2. 第二种方式:在访问共享资源时,不要直接加锁,而是尝试加锁(),因为我们提供的互斥锁里面都有一个trylock,如果尝试失败,你就先等一等,等其他线程解锁后,你再trylock就成功了 +3. 另外,cpp11还提供了lock_guard智能锁,和智能指针管理类似,使用了lock_guard我们就不需要去维护互斥锁的解锁操作。不过,lock_guard管理的是一个大括号这一段代码,假如说这段大括号有100多行代码,使用lock_guard就不太划算,因为锁住的太多了,这个使用还是使用常规锁,不要使用智能锁。 + +--- + +在项目中,我使用的是libevent+线程池,在线程池中有很多子线程,如果有子线程操作共享资源,那么需要加锁, + +这里也是会有一个生产者消费者的概念,任务队列相当于那个容器,不断有生产者线程给任务队列中放任务,也不断有消费者线程从任务队列里面拿任务,生产者线程不只一个,消费者线程也不只一个. + +如果只有一个任务队列,会出现惊群效应:只有一个任务可拿,但是却唤醒了所有的消费者线程,最后只有一人能够拿到这个任务,其他消费者都是无效唤醒 + +为了解决这个"惊群效应",我们采用建立多个任务队(有多少个线程,就创建多少个任务队列),每个线程都有属于自己的任务队列,那么此时就不再出现线程与线程之间的竞争了(就和libevent+线程池一样,每个线程都有属于自己的事件集合,为的就是避免线程竞争),既然该任务队列被一个线程独占,那么就不存在竞争了,就无需加锁,他在添加的时候不能处理,他在处理的时候不能添加 + +主线程负责两件事: + +1)负责和新客户端建立连接 + +2)主线程还会给任务队列中添加任务,子线程负责从任务队列中取任务 + + + +--- + +有一个很傻的问题: + + + + + ## 13.死锁 死锁产生的条件: diff --git a/exampleSite/content/post/2024-04-19面试复盘/图片/1713687466179.png b/exampleSite/content/post/2024-04-19面试复盘/图片/1713687466179.png new file mode 100644 index 0000000000000000000000000000000000000000..cfc2628ae7e95c504b6f459549510c1d24b33322 GIT binary patch literal 50497 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�oDm`X@T-~8VzsMqVD9UB|jm`Jr`nW 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