【源码剖析】threadpool —— 基于 pthread 实现的简单线程池
来源:互联网 发布:复杂网络的实际应用 编辑:程序博客网 时间:2024/05/16 15:02
原文链接 http://blog.csdn.net/jcjc918/article/details/50395528
线程池介绍
线程池可以说是项目中经常会用到的组件,在这里假设读者都有一定的多线程基础,如果没有的话不妨在这里进行了解:POSIX 多线程基础。
线程池是什么?我的简单理解是有一组预先派生的线程,然后有一个管理员来管理和调度这些线程,你只需不断把需要完成的任务交给他,他就会调度线程的资源来帮你完成。
那么管理员是怎么做的呢?一种简单的方式就是,管理员管理一个任务的队列,如果收到新的任务,就把任务加到队列尾。每个线程盯着队列,如果队列非空,就去队列头拿一个任务来处理(每个任务只能被一个线程拿到),处理完了就继续去队列取任务。如果没有任务了,线程就休眠,直到任务队列不为空。如果这个管理员更聪明一点,他可能会在没有任务或任务少的时候减少线程的数量,任务处理不过来的时候增加线程的数量,这样就实现了资源的动态管理。
那么任务是什么呢?以后台服务器为例,每一个用户的请求就是一个任务,线程不断的在请求队列里取出请求,完成后继续处理下一个请求。
简单图示为:
线程池有一个好处就是减少线程创建和销毁的时间,在任务处理时间比较短的时候这个好处非常显著,可以提升任务处理的效率。
线程池实现
这里介绍的是线程池的一个简单实现,在创建的时候预先派生指定数量的线程,然后去任务队列取添加进来的任务进行处理就好。
作者说之后会添加更多特性,我们作为学习之后就以这个版本为准就好了。
项目主页:threadpool
0 0
- 【源码剖析】threadpool —— 基于 pthread 实现的简单线程池
- 【源码剖析】threadpool —— 基于 pthread 实现的简单线程池
- 【源码剖析】threadpool —— 基于 pthread 实现的简单线程池
- Nodejs事件引擎libuv源码剖析之:高效线程池(threadpool)的实现
- 基于pthread的线程池,C++实现
- 线程池(ThreadPool)——简单描述
- 线程池—ThreadPool
- C#异步编程的实现方式(3)——ThreadPool线程池
- threadpool——python线程池
- Pthread实现面向对象的线程处理简单框架
- muduo源码分析:线程池类ThreadPool
- Linux下调用pthread库实现简单线程池
- 【源码剖析】MemoryPool —— 简单高效的内存池 allocator 实现
- 【源码剖析】MemoryPool —— 简单高效的内存池 allocator 实现
- ThreadPool 线程池的使用
- [并发并行]_[pthread]_[线程池的简单设计与实现]
- 简单看看ThreadPool的源码以及从中看出线程间传值的另一种方法
- Java ThreadPool源码简单的解析
- JNI开发第二篇通过反射实现C中调用java代码,并实现Log打印日志
- Struts2中的拦截器
- 51单片机定时控制灯
- 记录一个网站
- JAVA基础6.44——单例设计模式
- 【源码剖析】threadpool —— 基于 pthread 实现的简单线程池
- 编译原理:LL(1)文法 语法分析器(预测分析表法)
- 9.8
- 第03章:java数据类型
- LightOJ 1035 Intelligent Factorial Factorization 因子分解水题
- python学习(一) 根据廖雪峰老师的资料进行自学
- 状态栏攻略
- node Express安装和使用
- 栈和队列的基础算法学习