![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
线程池
文章平均质量分 69
会笑的那双眼
喜欢那双会笑的眼
展开
-
线程死锁检测
死锁首先,线程占用资源后会上锁,那么暂且将这个资源称为线程的绑定资源,当多个线程在绑定资源后希望获取其他线程的资源时,就有一个条件,就是相应的线程释放该资源(解锁),否则就要一直等待,而如果对应线程又在等待其他线程的绑定资源时且最终这个等待形成一个环的话,就会可能出现死锁的问题。整体思路使用dlsym劫持pthread_mutex锁操作,然后类似于装饰器模式添加一些额外的控制修饰代码;dlsym#define __GNU_SOURCE // 有些编译器可能需要加这个宏#includ原创 2022-05-13 14:04:15 · 408 阅读 · 1 评论 -
线程池相关
线程池线程池的执行顺序是无序的,即从任务队列中取出来任务,但是这个的执行顺序是无法保证这些线程是顺序的;整个线程池就是基于线程的封装,并抽象两个接口,一个是任务队列,一个是工作线程队列;用到线程池的向任务队列添加任务,并调用一个接口(任务结构中定义),参数的话通过一个void指针进行传递;然后工作队列在任务队列中有任务的时候就不断提取进行程序执行;这个添加与提取的过程就涉及到了临界区,因此需要mutex来进行保护;任务中的指针空间释放的话一般放在任务函数中,要确定好责任归属,资源是谁申请的就要由谁来进原创 2022-04-27 09:44:52 · 245 阅读 · 1 评论