[发明专利]线程数目可伸缩的多任务队列调度系统及其实现方法有效
申请号: | 201310428355.6 | 申请日: | 2013-09-18 |
公开(公告)号: | CN103473129B | 公开(公告)日: | 2017-01-18 |
发明(设计)人: | 顾玉峰 | 申请(专利权)人: | 深圳前海大数金融服务有限公司 |
主分类号: | G06F9/46 | 分类号: | G06F9/46 |
代理公司: | 上海知义律师事务所31304 | 代理人: | 杨楠 |
地址: | 518052 广东省深圳市*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 线程 数目 伸缩 任务 队列 调度 系统 及其 实现 方法 | ||
1. 一种线程数目可伸缩的多任务队列调度系统,主要由任务派发者、工作线程池和任务队列构成;其特征在于:所述的任务派发者为一个独立的进程或线程;所述的工作线程池创建有一个以上的工作线程,且工作线程不与任务队列直接相关联;所述的任务队列是根据任务类型创建的任务排队序列;所述的任务派发者根据任务队列情况决定是否分配新的工作线程。
2. 一种如权利要求1所述的线程数目可伸缩的多任务队列调度系统的实现方法,包括系统初始化设计、任务派发者的逻辑设计和工作线程的逻辑设计;其特征在于,所述的系统初始化设计包括:
(1)为每种任务类型创建一个对应的任务队列,并分别记为TQ1,TQ2,…,TQn;
(2)创建一个或者两个以上任务派发者,接收任务并根据任务类型派发到相应的任务队列中;
(3)初始化工作线程池,空闲状态的工作线程进入睡眠状态;
所述的任务派发者的逻辑设计包括:
(1)任务派发者接收到某一类型的任务Ti时,找到其对应的任务队列TQi,并判断该任务队列的待执行任务是否为空;
(2)如果该任务队列TQi的待执行任务为空,则将任务Ti放入到该任务队列TQi中,并执行以下操作:
a.在工作线程池中查找空闲状态的工作线程,如果工作线程池中无空闲状态的工作线程,则创建一个新的工作线程,并将其加入到工作线程池中;
b.用找到的空闲状态的工作线程或是新建的工作线程来执行任务Ti;
(3)如果该任务队列TQi的待执行任务不为空,则将任务Ti放在任务队列TQi的末尾,等待任务执行;
所述的工作线程的逻辑设计包括:
(1)当工作线程被分配一个任务Ti时,其执行该任务;
(2)当工作线程执行完一个任务Ti后,其查找Ti对应的队列TQi,然后执行以下操作:
a.将任务Ti从TQi中移除;
b.如果TQi不为空,继续执行队头的任务;
c.如果TQi为空,终止执行,工作线程回归工作线程池。
3. 根据权利要求2所述的多任务队列调度系统的实现方法,其特征在于:所述的任务派发者为一个独立的进程或线程。
4. 根据权利要求2所述的多任务队列调度系统的实现方法,其特征在于:所述的工作线程池创建有一个以上的工作线程,且工作线程不与任务队列直接相关联。
5. 根据权利要求2-4任一所述的多任务队列调度系统的实现方法,其特征在于:所述的待执行任务包括未执行任务和正在执行但未完成的任务。
6. 根据权利要求5所述的多任务队列调度系统的实现方法,其特征在于:所述的工作线程回归工作线程池后,工作线程池将销毁该工作线程或是将该工作线程分配给其他任务队列执行任务。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳前海大数金融服务有限公司,未经深圳前海大数金融服务有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310428355.6/1.html,转载请声明来源钻瓜专利网。
- 上一篇:安全节能型电取暖器
- 下一篇:轧钢机钢性合金瓦柱塞机构