现在的位置: 首页 > 综合 > 正文

简单的线程池实现

2013年08月14日 ⁄ 综合 ⁄ 共 5254字 ⁄ 字号 评论关闭

线程池就好像...

一个工厂从外面接业务(任务)回来,而它养了一定数量的工人,工人主动去领取任务,然后负责这个任务的实施。

然而这个工厂怎么管理好业务和工人,怎么管理好任务的分配而不发生错误,即需要一个良好的机制了。

 

回到线程池,一样的道理。

有以下几个基本点:(这里针对简单基础的情况)

1. 用一个队列管理任务,任务包括创建时间、提交时间、执行时间、结束时间等描述任务执行过程的属性。(就好像一个工程项目做的施工计划或者合同计划类似属性)

2.用一个队列管理工作线程(工人),工作线程主动到线程任务队列中拿任务,如果队列为空则等待,直到有任务进来然后唤醒他们——有活干了!

3.有一个后台线程(监理)负责监控这些工作线程的工作状态,是空闲还是忙碌。

4.任务接口(或则抽象类),所有执行的任务必须符合标准。(就好像一个公司大部分只做相关业务的单子,除了......)

 

下面给出代码了,也是参考了网上的,进行了适当的调整,并且给出了适当的注释!

 

1.task接口。

 

 

2.worker——工作线程

 

3.ThreadPool——线程池

 

4.monitor——监控类

 

5.以下是配合测试的,具体的任务TaskTest

 

6.测试主程序

 

 

虽然是入门级的线程池,但是基本的原理还是比较清晰地。

 

 

 

 

 

 

 

 

 

 

 

 

 

【上篇】
【下篇】

抱歉!评论已关闭.