[发明专利]一种线程池管理方法及装置在审
| 申请号: | 201610932191.4 | 申请日: | 2016-10-31 |
| 公开(公告)号: | CN108009005A | 公开(公告)日: | 2018-05-08 |
| 发明(设计)人: | 蒋雨含;蒋剑峰 | 申请(专利权)人: | 北京优朋普乐科技有限公司 |
| 主分类号: | G06F9/48 | 分类号: | G06F9/48;G06F9/50 |
| 代理公司: | 北京同达信恒知识产权代理有限公司 11291 | 代理人: | 黄志华 |
| 地址: | 100123 北京市朝阳区高碑店*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 线程 管理 方法 装置 | ||
1.一种线程池管理方法,其特征在于,包括:
线程执行完一个任务后,确定任务队列长度是否大于0;所述任务队列用于存储分配管理器收到的且满足如下特征的任务:所述分配管理器在收到任务时获取执行任务的线程失败;
所述线程在确定任务队列长度大于0时,将所述任务队列头部的任务取出并执行。
2.如权利要求1所述的方法,其特征在于,所述线程在执行完一个任务后,确定任务队列长度是否大于0之前,所述方法还包括:
所述线程确定私有工作队列的长度为0;所述私有工作队列用于存储所述分配管理器分配给所述线程的任务,并且分配的所述任务的优先级高于预设优先级。
3.如权利要求2所述的方法,其特征在于,所述方法还包括:
所述线程在确定所述私有工作队列的长度大于0时,所述线程将所述私有工作队列头部的任务取出并执行。
4.如权利要求1至3任一项所述的方法,其特征在于,所述方法还包括:
所述线程在确定所述任务队列长度为0时,所述线程将自身对应的线程管理对象存储到空闲线程队列;其中,所述空闲线程队列用于存储未执行任务的线程对应的线程管理对象。
5.一种线程池管理方法,其特征在于,包括:
分配管理器接收到任务;
所述分配管理器确定空闲线程队列长度大于0时,所述分配管理器将接收到的所述任务分配给所述空闲线程队列头部的线程管理对象对应的第一线程;
其中,所述空闲线程队列用于存储已创建的、且未执行任务的线程对应的线程管理对象。
6.如权利要求5所述的方法,其特征在于,所述方法还包括:
所述分配管理器确定所述空闲线程队列长度为0且所述空线程对象队列长度大于0时,所述分配管理器将所述空线程对象队列头部的空线程管理对象取出,并针对取出的所述空线程管理对象创建第二线程,将接收到的所述任务分配给所述第二线程;
其中,所述空线程对象队列用于存储未创建线程的线程管理对象。
7.如权利要求6所述的方法,其特征在于,所述方法还包括:
所述分配管理器在确定所述空闲线程队列长度和所述空线程对象队列长度均为0时,将接收到的所述任务存储至任务队列;所述任务队列用于存储分配管理器收到的且满足如下特征的任务:所述分配管理器在收到任务时获取执行任务的线程失败。
8.如权利要求7所述的方法,其特征在于,所述方法还包括:
所述分配管理器在确定所述任务队列长度大于0且接收到的所述任务对应的优先级低于预设优先级或者与预设优先级相同时,将接收到的所述任务存储到所述任务队列中。
9.如权利要求7或8所述的方法,其特征在于,所述方法还包括:
所述分配管理器确定所述任务对应的优先级高于预设优先级、空闲线程队列长度为0,空线程对象队列长度为0以及任务队列长度大于0时,所述分配管理器根据注册表,获取地址偏移量;所述分配管理器基于获取的所述地址偏移量,在线程池对象存储空间中获取对应的线程管理对象,并将接收到的所述任务存储至获取的所述线程管理对象对应的私有工作队列中;
其中,所述注册表存储有多个地址偏移量,不同的地址偏移量分别标识不同的线程管理对象在线程池对象存储空间中的位置。
10.如权利要求6所述的方法,其特征在于,所述方法还包括:
所述分配管理器在检测到在预设时长内所述空闲线程队列长度始终大于预设长度时,将所述空闲线程队列的至少一个线程管理对象对应的第三线程释放,并将所述第三线程对应的线程管理对象存储至所述空线程对象队列。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京优朋普乐科技有限公司,未经北京优朋普乐科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610932191.4/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种数据管理方法及装置
- 下一篇:带座椅的书架





