增加Readme文件说明
This commit is contained in:
parent
d19fa3ce32
commit
6f4a9cc08c
18
README.MD
18
README.MD
|
@ -1 +1,17 @@
|
|||
多线程多优先级任务调度组件
|
||||
多线程多优先级任务调度组件
|
||||
|
||||
1. 首先需要实现ITaskUnit接口。这个接口包含一个用来执行任务的Run方法和一个处理任务结果的TaskCallback方法。Run方法返回结果会作为result参数传递给TaskCallback方法。
|
||||
2. 第二步需要实例化一个任务调度器ConcurrentQueueTask,它实现了ITaskScheduler接口。
|
||||
3. 获得ITaskScheduler对象后可以调用相关的AddXXXXQueue方法将任务单元ITaskUnit加入队列。
|
||||
4. 调用ITaskScheduler的Start()方法开始执行任务调度,组件会根据加入的任务优先级按顺序执行Run方法,并在完成后调用依次调用TaskCallback。
|
||||
5. 调用的顺序一般不予加入的顺序相同,只跟加入的优先级队列有关。
|
||||
|
||||
下面介绍队列:
|
||||
1. System队列:该队列具有最高优先级,一般用来执行系统同步任务。任务加入队列后将在下次调度发生后马上执行。
|
||||
2. First队列:该队列优先级低于System队列,一般用来执行需要优先执行的任务,System中没有任务后开始执行。
|
||||
3. Queue一般级队列组:该组包含若干队列,处于该组队列中的任务会在system和First队列中没有任务后执行。具体执行哪个任务取决于队列的命中率,该命中率有weight决定。该值越大命中率越高。
|
||||
4. Idel队列:空闲队列,当System、First和Queue队列均无任务可执行后开始执行。
|
||||
|
||||
注意点:
|
||||
1. 只有执行Start方法后才开始调度任务,并且在所有任务完成后结束调度,如果结束调度后再次加入新的任务需要再次调用Start方法重新开始调度。
|
||||
2. 任务执行Run中抛出的异常会传入TaskCallback方法进行处理。TaskCallback中抛出的异常不会处理并且会结束整个任务调度。
|
Loading…
Reference in New Issue
Block a user