[发明专利]任务执行及调整线程池中保留线程的数量的方法和装置有效
申请号: | 201310221656.1 | 申请日: | 2013-06-05 |
公开(公告)号: | CN103268247B | 公开(公告)日: | 2017-01-18 |
发明(设计)人: | 郑扬飞;朱春玲;梁云杰;吴卫荣;刘玉龙;吴瑜;胡春波;贾晓霞;刘毅;葛洁 | 申请(专利权)人: | 中国电子科技集团公司第十五研究所 |
主分类号: | G06F9/45 | 分类号: | G06F9/45;G06F9/50 |
代理公司: | 北京市京大律师事务所11321 | 代理人: | 黄启行,方晓明 |
地址: | 100083 北*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 任务 执行 调整 线程 保留 数量 方法 装置 | ||
技术领域
本发明涉及计算机技术领域,尤其涉及一种基于调整线程池中保留线程的数量的任务执行技术。
背景技术
目前服务器、交换机、移动通讯终端等设备的操作系统或应用程序等软件常常需要在单位时间内处理数目巨大的任务请求,但单个任务处理时间却相对较短。传统多线程方案,采用“即时创建,即时销毁”的策略:一旦接受到任务之后,立即创建一个新的线程,由该线程执行任务;任务执行完毕后,线程退出。尽管与创建进程相比,创建线程的时间已经大大的缩短,但是如果提交给线程的任务是执行时间较短,而且执行次数极其频繁,那么创建、销毁线程等非任务操作所消耗的系统资源不可忽略,甚至会若干倍于执行任务本身所消耗的系统资源,导致系统资源被大量非任务操作所消耗,不但任务程序响应速度低下,同时影响同一服务器上其它软件的运行。
因此在软件中引入线程池技术,通过重复利用已创建的线程降低线程创建和销毁造成的消耗来降低系统资源消耗;当任务到达时,任务可以不需要等到线程创建就能被执行来提高响应速度。采用线程池技术的软件都一般具备下面几个组成部分:
线程池管理器:用于创建并管理线程池中的线程和其它功能单元。
工作线程:线程池中实际执行任务的线程。
任务接口:线程池接受任务的功能单元。
任务队列:保存待工作线程执行的任务的功能单元,其中,任务是按照先入先出原则排序的。
在采用线程池技术的软件启动之后,线程池管理器在线程池中立即预创建一定数量的工作线程作为保留线程,并将其标识为空闲。线程池管理器通过任务接口接受任务后,选择任一个空闲的保留线程,把任务传入此线程中执行。当保留线程都在执行任务时,线程池管理器会把任务存放在任务队列中;当任务队列没有剩余空间时,线程池管理器自动新创建一定数量的工作线程作为扩展线程,用于处理更多的任务。在任务执行完毕后线程也不立即退出,而是继续保持在池中等待下一次的任务。扩展线程在空闲一段时间后,被线程池管理器销毁,回收系统资源;保留线程在空闲一段时间后,被线程池管理器标识为空闲但不销毁。
现有线程池的技术方案中,保留线程数量一般都是固定的,少数情况下可以手动调整,但需要重启采用线程池技术的软件,都无法自动地调整保留线程的数量。由于任务数量的波动无法预测,当某一时间段内线程池的任务接口接受到大量任务时,保留线程在指定时限内来不及处理这些任务,则线程池管理器需要执行较多的任务队列操作,还需要创建较多数量的扩展线程;当任务数量回落时并保持一段时间,扩展线程空闲,则线程池管理器需要销毁扩展线程,部分保留线程也有可能空闲。
综上所述,现有技术的线程池中保留线程数量固定的技术方案,在任务数量多时,会增加非任务操作对系统资源的消耗,降低对任务的响应速度;在任务数量少时,多余的空闲的保留线程会占用较多的系统资源。
发明内容
本发明的实施例提供了一种任务执行及线程池的保留线程的调整方法和装置,用以应对数量变化的任务,以占用或消耗较少的系统资源,保证对任务的响应速度。
本发明的技术方案提高一种调整线程池中保留线程的数量的方法,包括:
周期性统计周期内非任务操作的频次;并
根据本周期内统计的非任务操作的频次,确定出下个周期的线程池中保留线程的数量;
将确定出的下个周期的线程池中保留线程的数量与当前线程池中保留线程的数量进行比较,根据比较结果调整当前线程池中的保留线程,得到下个周期的数量调整后的保留线程;
较佳地,所述非任务操作包括:扩展线程操作;其中,所述扩展线程操作具体包括:创建扩展线程和销毁扩展线程的操作。
较佳地,所述非任务操作还包括:任务队列操作;其中,所述任务队列操作具体为将任务存放到任务队列中的操作。
较佳地,所述周期性统计周期内非任务操作的频次,具体包括:
每个周期开始时,将本周期的非任务操作频次清0;
在本周期内,对当前线程池执行数量变化的任务过程中的非任务操作频次进行统计。
较佳地,所述根据本周期内统计的非任务操作频次,确定出下个周期的线程池中保留线程的数量,具体包括:
将所述本周期内统计的非任务操作频次与若干个频次阈值进行比较:
若存在小于所述非任务操作频次的频次阈值,则确定出小于所述非任务操作频次的各频次阈值中最大的频次阈值,将该最大的频次阈值对应的保留线程建议数量作为下个周期的线程池中保留线程的数量;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国电子科技集团公司第十五研究所,未经中国电子科技集团公司第十五研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310221656.1/2.html,转载请声明来源钻瓜专利网。
- 上一篇:管理文件的方法及装置
- 下一篇:存储虚拟化处理方法