【技术实现步骤摘要】
任务执行及调整线程池中保留线程的数量的方法和装置
本专利技术涉及计算机
,尤其涉及一种基于调整线程池中保留线程的数量的任务执行技术。
技术介绍
目前服务器、交换机、移动通讯终端等设备的操作系统或应用程序等软件常常需要在单位时间内处理数目巨大的任务请求,但单个任务处理时间却相对较短。传统多线程方案,采用“即时创建,即时销毁”的策略:一旦接受到任务之后,立即创建一个新的线程,由该线程执行任务;任务执行完毕后,线程退出。尽管与创建进程相比,创建线程的时间已经大大的缩短,但是如果提交给线程的任务是执行时间较短,而且执行次数极其频繁,那么创建、销毁线程等非任务操作所消耗的系统资源不可忽略,甚至会若干倍于执行任务本身所消耗的系统资源,导致系统资源被大量非任务操作所消耗,不但任务程序响应速度低下,同时影响同一服务器上其它软件的运行。因此在软件中引入线程池技术,通过重复利用已创建的线程降低线程创建和销毁造成的消耗来降低系统资源消耗;当任务到达时,任务可以不需要等到线程创建就能被执行来提高响应速度。采用线程池技术的软件都一般具备下面几个组成部分:线程池管理器:用于创建并管理线 ...
【技术保护点】
一种调整线程池中保留线程的数量的方法,包括:周期性统计周期内非任务操作的频次;并根据本周期内统计的非任务操作的频次,确定出下个周期的线程池中保留线程的数量;将确定出的下个周期的线程池中保留线程的数量与当前线程池中保留线程的数量进行比较,根据比较结果调整当前线程池中的保留线程,得到下个周期的数量调整后的保留线程。
【技术特征摘要】
1.一种调整线程池中保留线程的数量的方法,包括:周期性统计周期内非任务操作的频次;并根据本周期内统计的非任务操作的频次,确定出下个周期的线程池中保留线程的数量;将确定出的下个周期的线程池中保留线程的数量与当前线程池中保留线程的数量进行比较,根据比较结果调整当前线程池中的保留线程,得到下个周期的数量调整后的保留线程;其中,所述非任务操作包括:扩展线程操作;其中,所述扩展线程操作具体包括:创建扩展线程和销毁扩展线程的操作。2.如权利要求1所述方法,其中,所述非任务操作还包括:任务队列操作;其中,所述任务队列操作具体为将任务存放到任务队列中的操作。3.如权利要求1或2所述的方法,其中,所述周期性统计周期内非任务操作的频次,具体包括:每个周期开始时,将本周期的非任务操作频次清0;在本周期内,对当前线程池执行数量变化的任务过程中的非任务操作频次进行统计。4.如权利要求3所述的方法,其中,所述根据本周期内统计的非任务操作频次,确定出下个周期的线程池中保留线程的数量,具体包括:将所述本周期内统计的非任务操作频次与若干个频次阈值进行比较:若存在小于所述非任务操作频次的频次阈值,则确定出小于所述非任务操作频次的各频次阈值中最大的频次阈值,将该最大的频次阈值对应的保留线程建议数量作为下个周期的线程池中保留线程的数量;否则,将本周期的非空闲的保留线程数量作为下个周期的线程池中保留线程的数量;或者,所述根据本周期内统计的非任务操作频次,确定出下个周期的线程池中保留线程的数量,具体包括:将所述本周期分解成n个子周期,n为自然数,所述本周期内统计的非任务操作频次分解成n个子周期内分别统计的n个非任务操作子频次;将n个所述非任务操作子频次分别与若干个频次阈值进行比较:若存在小于n个所述非任务操作子频次的频次阈值,则确定出小于n个所述非任务操作子频次的各频次阈值中最大的频次阈值,将该最大的频次阈值对应的保留线程建议数量作为下个周期的线程池中保留线程的数量;否则,将本周期的非空闲的保留线程数量作为下个周期的线程池中保留线程的数量;其中,所述各频次阈值及其对应的保留线程建议数量为预先设定的自然数。5.如权利要求4所述的方法,其中,所述将确定出的下个周期的线程池中保留线程的数量与当前线程池中保留线程的数量进行比较,根据比较结果调整当前线程池中的保留线程,得到下个周期的数量调整后的保留线程,具体包括:计算所述确定出的下个周期的线程池中保留线程的数量与当前线程池的保留线程数量的差值;若计算出的差值大于0,则在所述线程池中创建与所述差值相应个数的保留线程;若计算出的差值小于0,则将所述线程池中与所述差值相应个数的保留线程销毁。6.一种任务执行方法,包括:线程池管理器接受到任务后,判断当前线程池中是否有空闲的保留线程;若有,则将该任务分配给其中一个空闲的保留线程执行;否则:所述线程池管理器判断当前线程池的任务队列是...
【专利技术属性】
技术研发人员:郑扬飞,朱春玲,梁云杰,吴卫荣,刘玉龙,吴瑜,胡春波,贾晓霞,刘毅,葛洁,
申请(专利权)人:中国电子科技集团公司第十五研究所,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。