[发明专利]一种线程池管理方法及装置在审
| 申请号: | 201610932191.4 | 申请日: | 2016-10-31 |
| 公开(公告)号: | CN108009005A | 公开(公告)日: | 2018-05-08 |
| 发明(设计)人: | 蒋雨含;蒋剑峰 | 申请(专利权)人: | 北京优朋普乐科技有限公司 |
| 主分类号: | G06F9/48 | 分类号: | G06F9/48;G06F9/50 |
| 代理公司: | 北京同达信恒知识产权代理有限公司 11291 | 代理人: | 黄志华 |
| 地址: | 100123 北京市朝阳区高碑店*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 线程 管理 方法 装置 | ||
本发明公开了一种线程池管理方法及装置,用于解决现有技术中系统开销大,时间资源浪费的问题。所述线程池管理方法具体包括:线程执行完一个任务后,确定任务队列长度是否大于0;所述任务队列用于存储分配管理器收到的且满足如下特征的任务:所述分配管理器在收到任务时获取执行任务的线程失败;所述线程在确定任务队列长度大于0时,将所述任务队列头部的任务取出并执行。
技术领域
本发明涉及信息技术领域,特别是涉及一种线程池管理方法及装置。
背景技术
多线程技术主要解决处理器单元内多个线程执行任务的问题,采用多线程技术可以显著减少处理器单元的闲置时间,增加处理器单元的吞吐能力。
目前多线程技术采用构建线程池的方式,当线程池接收到任务时统一放入到任务队列中,然后由线性池中一个独立的线程为线程池中的各个其他线程分配任务,增加了系统开销,也浪费了时间资源。
发明内容
本发明实施例提供一种线程池管理方法及装置,用以解决现有技术中存在的时间资源浪费的问题。
第一方面,本发明实施例提供了一种线程池管理方法,包括:
线程执行完一个任务后,确定任务队列长度是否大于0;所述任务队列用于存储分配管理器收到的且满足如下特征的任务:所述分配管理器在收到任务时获取执行任务的线程失败;
所述线程在确定任务队列长度大于0时,将所述任务队列头部的任务取出并执行。
结合第一方面,在第一方面的第一种可能的实施方式中,所述线程在执行完一个任务后,确定任务队列长度是否大于0之前,还包括:
所述线程确定私有工作队列的长度为0;所述私有工作队列用于存储所述分配管理器分配给所述线程的任务,并且分配的所述任务的优先级高于预设优先级。
结合第一方面的第一种可能的实施方式,在第一方面的第二种可能的实施方式中,所述方法还包括:
所述线程在确定所述私有工作队列的长度大于0时,所述线程将所述私有工作队列头部的任务取出并执行。
结合第一方面和第一方面的第一种可能的实施方式以及第一方面的第二种可能的实施方式中的任一种可能的实施方式,在第一方面的第三种可能的实施方式中,所述方法还包括:
所述线程在确定所述任务队列长度为0时,所述线程将自身对应的线程管理对象存储到空闲线程队列;其中,所述空闲线程队列用于存储未执行任务的线程对应的线程管理对象。
本发明实施例中,相比于现有技术中当线程池接收到任务时,先统一放入任务队列,再由独立的线程从任务队列中取出分配给其他线程的方式,本发明实施例中,当有线程执行完任务,先检查任务队列长度,若任务队列长度大于0,则任务执行完毕的线程自行获取任务执行,这种方式可大幅提升系统性能,减少系统开销,节约时间资源。
第二方面,本发明实施例提供了一种线程池管理方法,包括:
分配管理器接收到任务;
所述分配管理器确定空闲线程队列长度大于0时,所述分配管理器将接收到的所述任务分配给所述空闲线程队列头部的线程管理对象对应的第一线程;
其中,所述空闲线程队列用于存储已创建的、且未执行任务的线程对应的线程管理对象。
结合第二方面,在第二方面的第一种可能的实施方式中,所述方法还包括:
所述分配管理器确定所述空闲线程队列长度为0且所述空线程对象队列长度大于0时,所述分配管理器将所述空线程对象队列头部的空线程管理对象取出,并针对取出的所述空线程管理对象创建第二线程,将接收到的所述任务分配给所述第二线程;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京优朋普乐科技有限公司,未经北京优朋普乐科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610932191.4/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种数据管理方法及装置
- 下一篇:带座椅的书架





