一种基于线程池的任务调度方法、装置及系统制造方法及图纸

技术编号:33334511 阅读:21 留言:0更新日期:2022-05-08 09:16
本申请公开了一种基于线程池的任务调度方法,主线程将目标任务卸载至主线程队列,并向第二主线程管道写入事件使得第一主线程管道可读,以便于线程池中的线程在第一主线程管道可读时从主线程队列获取目标任务并执行任务处理函数,得到处理结果,进而将处理结果写入线程池队列,并向第二线程池管道写入事件使得第一线程池管道可读;主线程监听第一线程池管道,在第一线程池管道可读时从线程池队列中获取处理结果。可见,该方法能够将计算工作卸载到线程池中执行,达到加快处理速度,降低函数队列调度时延的目的。此外,本申请还提供了一种基于线程池的任务调度装置、系统、计算机设备及可读存储介质,其技术效果与上述方法的技术效果相对应。技术效果相对应。技术效果相对应。

【技术实现步骤摘要】
一种基于线程池的任务调度方法、装置及系统


[0001]本申请涉及计算机
,特别涉及一种基于线程池的任务调度方法、装置、系统、计算机设备及可读存储介质。

技术介绍

[0002]商用路由协议平台ZebOS系统的线程机制,是以函数作为最小调度单位,在单线程环境下线程进行非抢占式调度,每一个参与调度的执行函数必须执行完成,才会调度下一个函数。这种调度方式有一个很明显缺点,即调度周期随被调度的函数执行时间的不同而不同。若调度函数队列中存在一些执行时间较长的函数,则其他实时性敏感的函数调度时间就也会变得非常长。

技术实现思路

[0003]本申请的目的是提供一种基于线程池的任务调度方法、装置、系统、计算机设备及可读存储介质,用以解决目前的任务调度方案受限于函数执行时间,导致效率较低的问题。其具体方案如下:第一方面,本申请提供了一种基于线程池的任务调度方法,应用于主线程,包括:将目标任务卸载至主线程队列,并向第二主线程管道写入事件使得第一主线程管道可读,以便于线程池中用于监听所述第一主线程管道的线程在所述第一主线程管道可读时从所述主线程队本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种基于线程池的任务调度方法,其特征在于,应用于ZebOS主线程,包括:将目标任务卸载至主线程队列,并向第二主线程管道写入事件使得第一主线程管道可读,以便于线程池中用于监听所述第一主线程管道的线程在所述第一主线程管道可读时从所述主线程队列获取所述目标任务并执行任务处理函数,得到所述目标任务的处理结果,进而将所述目标任务的处理结果写入线程池队列,并向第二线程池管道写入事件使得第一线程池管道可读;监听所述第一线程池管道,在所述第一线程池管道可读时,从所述线程池队列中获取所述目标任务的处理结果。2.如权利要求1所述的方法,其特征在于,所述目标任务包括耗时超过时间阈值的任务和/或与目标业务无关的任务。3.如权利要求1所述的方法,其特征在于,每个所述目标任务有且仅有一个线程获取到。4.一种基于线程池的任务调度装置,其特征在于,应用于ZebOS主线程,包括:任务卸载模块,用于将目标任务卸载至主线程队列,并向第二主线程管道写入事件使得第一主线程管道可读,以便于线程池中用于监听所述第一主线程管道的线程在所述第一主线程管道可读时从所述主线程队列获取所述目标任务并执行任务处理函数,得到所述目标任务的处理结果,进而将所述目标任务的处理结果写入线程池队列,并向第二线程池管道写入事件使得第一线程池管道可读;处理结果监听模块,用于监听所述第一线程池管道,在所述第一线程池管道可读时,从所述线程池队列中获取所述目标任务的处理结果。5.一种基于线程池的任务调度方法,其特征在于,应用于ZebOS线程池,包括:控制线程池中的线程监听第一主线程管道,在所述第一主线程管道可读时,从主线程队列中获取目标任务,其中所述目标任务为主线程卸载至所述主线程队列的,所述主线程在将所述目标任务卸载至所述主线程队列时还向第二主线程管道写入事件使得所述第一主线程管道可读;控制线程池中的线程执行任务处理函数,得到所述目标任务的处理结果,将所述目标任务的处理结果写入线程池队列中,并向第二线程池管道写入事件使得...

【专利技术属性】
技术研发人员:陈一骄高仙恩胡都欢童云龙张鹏高智斐曾晓琪唐靖飚屈晓阳王克波
申请(专利权)人:戎腾科技长沙有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1