前驱
本文章的前驱文章是 两种多线程模型的管理(概述) ,其中对本文章要分析的问题做了定义,并对解决该问题的需求进行了简单阐述。如果您还没有阅读那篇文章,直接读下面的文字可能会难以理解。
分析
流水线型任务
- 流水线结构
我在上一篇文章中提到:
每个流水线可以独占一个线程的资源,可以有自己的初始化、执行和销毁过程,执行过程连续化
所以单个流水线型任务的执行流程应该是这样的:
- 流水线族结构
定义“行为逻辑相同的流水线”共同组成流水线族。
流水线族与流水线之间是依赖关系,流水线族应能管理所有在其中的流水线。
流水线族对流水线的管理方式
增加流水线
增加一个执行该流水线的线程。减少流水线
结束若干个 最早执行完其核心过程 的线程。
周期型任务
我在前驱文章中的描述是:
不需要复杂的初始化和销毁,可以周期性定时启动,也可以是一次性的、尽快执行的,执行周期往往较短, 线程池管理的就是这样一类任务。
这种任务应该具有通用性,可指定优先级,也可以在运行时改变优先级。其执行者可以使用线程池的模型,即预留若干空闲线程来执行这些任务。