线程池

本文探讨线程池的实现,从初始化线程池到任务调配机制,详细阐述线程如何从休眠状态被唤醒执行任务,以及任务节点和线程池关键函数的作用。
摘要由CSDN通过智能技术生成

线程池 pthread pool

线程池技术思路:
	一般采用预创建线程技术,也就是提前把需要用线程先创建一定数目。
	这些线程提前创建好了之后,“任务队列”里面假设没有任务,那么就
	让这些线程休眠,一旦有任务,就唤醒线程去执行任务,任务执行完了,
	也不需要去销毁线程,直到当你想退出或者是关机时,这个时候,那么你
	调用销毁线程池地函数去销毁线程。
“任务队列”是一个共享资源“互斥访问”

线程池的实现
先初始化线程池的基本内容,将线程全部创建好,所有线程都执行的是任务调配的函数
在任务调配函数中,因没有任务的加入,所有的线程都会处于休眠状态,等待条件变量。
当任务队列中添加了新的任务时,会发送唤醒线程,抢到任务的线程进入任务队列并上锁
拿出任务,在解锁,再执行。其他线程因为拿到任务继续休眠。

struct pthread_pool //线程池的实现
{
   
	//一般会有如下成员
	//互斥锁,用来保护这个“任务队列”
	pthread_mutex_t lock; //互斥锁 
		
	//线程条件变量 表示“
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值