线程池的简单组成

    1)线程池管理器(ThreadPoolManager):用于创建并管理线程池。

    2)工作线程(WorkThread):线程池中实际执行任务的线程。

    3)任务接口(Task):每个任务必须实现的接口,以供工作线程调度任务的执行。

    4)任务队列:用于存放没有处理的任务。提供一种缓冲机制。

    线程池管理器至少有下列功能:创建线程池,销毁线程池,添加新任务。

    工作线程是一个可以循环执行任务的线程,在没有任务时将等待。

    任务接口是为所有任务提供统一的接口,以便工作线程处理。任务接口主要规定了任务的入口,任务执行完后的收尾工作,任务的执行状态等。

    看了很多前辈的文档,总结起来,一个简单的线程池包括县城管理器、工作线程和任务队列三部分。任务接口是执行实际工作的函数。队列中保存有任务接口及相关参数。工作线程获取队列中每个任务,将函数及函数参数作为工作线程的执行参数(有点类似C++中的回调和C#中委托)传入。工作线程常驻内存,直至任务结束后退出。

    其实有点类似生产者消费者模型。只不过消费者为线程池中的多个线程,以前没有详细了解过线程池的概念,了解下来发现简单的线程池概念还是比较好理解的。复杂的线程池等以后要使用的时候再学习吧。