Linux:系统编程

本文介绍了Linux系统编程中的线程池概念,包括线程池的工作原理,如进程初始化时创建一定数量的线程,任务队列管理,以及如何利用互斥锁和条件变量协调线程的执行。此外,还提及了互斥锁在特定场景下的局限性。
摘要由CSDN通过智能技术生成

1进程

2线程

④线程池

线程池:让进程在初始化时有一定数目的线程,没有任务时线程自动进入睡眠,有任务了自动执行任务,一直循环,进程根据任务情况来增删线程数量。

细节:

① 任务队列中刚开始没有任何任务,只是一个具有头结点的空链队列

② 使用互斥锁来保护这个队列,使用条件变量来显示任务链表中的任务数量的变化,如主线程向任务链表中投放任务,可以通过条件变量来唤醒睡着的线程

③通过公共开关控制线程退出,进而销毁线程池

互斥(互斥锁 mute)一个共享资源任意时刻最多只能有一个线程在访问

互斥锁不适用的情况:被保护的共享资源在大多数情况是读操作,使用的话会导致他、一起读的线程阻塞

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值