Linux下设计一个简单的线程池
来源:互联网 发布:化学结构式画图软件 编辑:程序博客网 时间:2024/04/30 07:13
定义
什么是线程池?简单点说,线程池就是有一堆已经创建好了的线程,初始它们都处于空闲等待状态,当有新的任务需要处理的时候,就从这个池子里面取一个空闲等待的线程来处理该任务,当处理完成了就再次把该线程放回池中,以供后面的任务使用。当池子里的线程全都处理忙碌状态时,线程池中没有可用的空闲等待线程,此时,根据需要选择创建一个新的线程并置入池中,或者通知任务线程池忙,稍后再试。
为什么要用线程池?
我们说,线程的创建和销毁比之进程的创建和销毁是轻量级的,但是当我们的任务需要大量进行大量线程的创建和销毁操作时,这个消耗就会变成的相当大。比如,当你设计一个压力性能测试框架的时候,需要连续产生大量的并发操作,这个是时候,线程池就可以很好的帮上你的忙。线程池的好处就在于线程复用,一个任务处理完成后,当前线程可以直接处理下一个任务,而不是销毁后再创建,非常适用于连续产生大量并发任务的场合。
线程池工作原理
线程池中每一个线程的工作过程如下:
图 1: 线程的工作流程
线程池的任务就在于负责这些线程的创建,销毁和任务处理参数传递、唤醒和等待。
1. 创建若干线程,置入线程池
2. 任务达到时,从线程池取空闲线程
3. 取得了空闲线程,立即进行任务处理
4. 否则新建一个线程,并置入线程池,执行3
5. 如果创建失败或者线程池已满,根据设计策略选择返回错误或将任务置入处理队列,等待处理
6. 销毁线程池
图 2:线程池的工作原理
线程池设计
数据结构设计
- Linux下设计一个简单的线程池
- Linux下设计一个简单的线程池
- Linux下设计一个简单的线程池
- Linux下设计一个简单的线程池
- Linux下设计一个简单的线程池
- Linux下设计一个简单的线程池
- Linux下设计一个简单的线程池
- Linux下设计一个简单的线程池
- Linux下设计一个简单的线程池
- Linux下设计一个简单的线程池
- linux下设计一个Shell脚本:判断当前工作目录下所有的文件类型。
- Linux下设计并发队列
- Linux下设计并发网络程序
- linux下设计一个Shell脚本:求命令行上所有整数和
- Linux 中统计一个进程的线程数
- linux下设定一个定时任务的实现
- protus下设计数控电流源简单总结
- 一个简单的计算题
- cocos2d引擎
- Web Service之AXIS传递javabean
- AE+地图文档基本操作
- drawBitmap 适配多分辨率(追求效果,做多图)
- Android中的Environment.getExternalStorageState使用(转自 YAnG_Linux)
- Linux下设计一个简单的线程池
- 20130908第一天到济南
- MapControl与PageLayoutControl联动
- Redhat 5.4 RAC multipath 配置raw,运行root.sh 时报错Failed to upgrade Oracle Cluster Registry configuration
- 【python】RuntimeError: Lock objects should only be shared between processes through inheritance
- winform应用程序制作过程遇到问题集锦
- 一个简单的jsp+servlet实例,实现简单的登录
- Lucene.Net 2.3.1开发介绍 —— 一、接触Lucene.Net
- 【iOS】对于iPhone5分辨率兼容性调整问题