背景说明:
一直听说线程池好用,写起来不难。兴趣一来也去研究,反反复复研究了几个月,文章资料看不下去,视频资料段段续续不全,要不就是写的太简单,要不就是没说明直接上代码,原理啥的不懂,也不知道写完怎么测试使用。学一段时间就放弃了,过一段时间兴趣来了就又学又放弃,反复熬人
最近下决心买了视频回来看,花钱讲的就是细,今天分享一下,希望对看文章的你有用.
线程池变量和函数接口说明:
1.变量有,任务结构体 线程池结构体
任务结构体
1.线程处理函数
2.线程处理函数的参数
线程池结构体
1.任务结构体指针
- 最大任务数
- 当前任务数
2.工作者线程指针
3.管理者线程指针
4.最大线程数
5.最小线程数
6.退出线程数量
7.线程锁1 ->用来锁整个线程池
8.线程锁2 ->用来锁线程池中某个变量
9.条件变量1 ->用来表示当任务满了,阻塞用的
10.条件变量2 ->用来表示当任务为空,阻塞用的
函数接口
- 创建线程池,返回值为int类型,参数为 线程池结构体指针 int int int
- 销毁线程池,返回值为int类型,参数为线程池结构体指针
- 添加任务 ,返回值为int类型,参数为 函数指针和指针变量
- 工作者线程回调函数,void指针变量
- 管理者线程回调函数,void指针变量