【梳理】多线程任务管理器的实现
?
类变量:
?
?工作线程:WorkThread
?
做初始化,线程启动后处于阻塞状态,等待线程池抓取,空闲时交由任务处理
?
?线程Processor任务器:
?
?
从Task管理器中移除就绪任务?
?
TaskManager.processorControllorWait():
?
?WorkThread唤醒,由Porcessor处理任务:
?
WorkThread.toWork()
?
?
?
3、Demo
自定义Task,实现抽象方法getPrimaryKey()
PrimaryKey为task容器的唯一主键
?创建任务管理器和添加任务:
public class MyManager {public static void main(String[] args) {TaskManager mgt = TaskManager.createTaskManager("MyManager", 5, 10 * 1000, new MyTaskProcessor(), 2);mgt.addTask(new MyTask(), TaskManager.HIGH_PRIORITY, Task.STATUS_READY);}}?
?
?
?
?
?
?
?