基于线程池的优先队列调度方法、系统、设备及存储介质与流程

文档序号:32351028发布日期:2022-11-26 13:07阅读:来源:国知局

技术特征:
1.一种基于线程池的优先队列调度方法,其特征在于,所述方法包括以下步骤:初始化优先级线程池和优先级线程池对象,并监听应用数据投递请求;所述优先级线程池对象包括若干个优先级队列、稳定线程分配比例、线程分配列表、未分配线程列表、拉取线程队列;所述优先级线程池包括管理线程和若干个业务线程;响应于应用数据投递请求,将各个应用数据按照优先级添加至对应的优先级队列并更新相应的数据缓存量,以及根据所述线程分配列表、所述未分配线程列表和各个优先级队列的数据缓存量,得到当前未分配线程数、当前优先级队列数据缓存量和当前优先级队列线程分配比例;根据所述当前未分配线程数、所述当前优先级队列数据缓存量、所述当前优先级队列线程分配比例和所述稳定线程分配比例,确定当前系统的数据处理时期;所述数据处理时期包括数据增长期、数据稳定期和数据减少期;根据所述数据处理时期,确定对应的线程分配规则,并通过所述管理线程和所述拉取线程队列,按照所述线程分配规则为各个优先级队列动态分配工作线程;所述线程分配规则包括数据增长期分配规则和数据减少期分配规则。2.如权利要求1所述的基于线程池的优先队列调度方法,其特征在于,所述根据所述当前未分配线程数、所述当前优先级队列数据缓存量、所述当前优先级队列线程分配比例和所述稳定线程分配比例,确定当前系统的数据处理时期的步骤包括:判断所述当前未分配线程数、所述当前优先级队列数据缓存量和所述当前优先级队列线程分配比例是否满足第一预设条件和第二预设条件;若不满足所述第一预设条件且不满足所述第二预设条件,则判定所述数据处理时期为数据增长期;若满足所述第一预设条件,则判定所述数据处理时期为数据稳定期;若满足所述第二预设条件,则判定所述数据处理时期为数据减少期。3.如权利要求2所述的基于线程池的优先队列调度方法,其特征在于,所述第一预设条件为同时满足所述当前未分配线程数等于0、所述当前优先级队列数据缓存量大于业务线程总数,以及所述当前优先级队列线程分配比例符合稳定线程分配比例;所述第二预设条件为同时满足所述当前未分配线程数等于0、所述当前优先级队列数据缓存量小于业务线程总数,以及所述当前优先级队列线程分配比例符合稳定线程分配比例。4.如权利要求3所述的基于线程池的优先队列调度方法,其特征在于,所述根据所述数据处理时期,确定对应的线程分配规则,并通过所述管理线程和所述拉取线程队列,按照所述线程分配规则为各个优先级队列动态分配工作线程的步骤包括:若所述数据处理时期为所述数据增长期,则按照所述数据增长期分配规则为各个优先级队列动态分配工作线程,并更新所述线程分配列表和所述未分配线程列表,直至各个优先级队列的工作线程数符合所述稳定线程分配比例;若所述数据处理时期为所述数据稳定期,则将各个优先级队列的工作线程按照所述稳定线程分配比例维持不变;若所述数据处理时期为所述数据减少期,则按照所述数据减少期分配规则为各个优先级队列动态分配工作线程,并更新所述线程分配列表和所述未分配线程列表。
5.如权利要求4所述的基于线程池的优先队列调度方法,其特征在于,所述按照所述数据增长期分配规则为各个优先级队列动态分配工作线程的步骤包括:由应用数据投递线程判断当前应用数据对应优先级队列的工作线程数是否达到所述稳定线程分配比例对应的最大线程数,若未达到,则将对应的优先级队列作为待拉取线程队列加入所述拉取线程队列,并将待拉取线程计数加1;由所述管理线程监听所述拉取线程队列,并在所述拉取线程计数不为0时,依次读取所述拉取线程队列中的待拉取线程队列,根据所述未分配线程列表为各个待拉取线程队列分配工作线程,以及在分配完成时,将所述待拉取线程计数作相应的减少更新;响应于每次应用数据处理完成,各个业务线程判断是否满足第一线程释放条件,若满足,则释放至未分配线程列表;所述第一线程释放条件为同时满足待拉取线程计数大于未分配线程列表长度、以及对应优先级队列的工作线程数已超过所述稳定线程分配比例对应的最大线程数。6.如权利要求5所述的基于线程池的优先队列调度方法,其特征在于,所述根据所述未分配线程列表为各个待拉取线程队列分配工作线程的步骤包括:判断所述待拉取线程队列的工作线程数是否达到所述稳定线程分配比例对应的最大线程数,若达到,则将所述待拉取线程队列的工作线程数维持不变,反之,则根据所述未分配线程列表,得到当前未分配线程数;判断所述当前未分配线程数是否大于0,若是,则将所述未分配线程列表中任一线程分配至所述待拉取线程队列,并将所述待拉取线程计数减1。7.如权利要求4所述的基于线程池的优先队列调度方法,其特征在于,所述按照所述数据减少期分配规则为各个优先级队列动态分配工作线程的步骤包括:由应用数据投递线程判断当前应用数据对应优先级队列的工作线程数是否达到所述稳定线程分配比例对应的最大线程数,若未达到,则将对应的优先级队列作为待拉取线程队列加入所述拉取线程队列,并将待拉取线程计数加1;由所述管理线程监听所述拉取线程队列,并在所述拉取线程计数不为0时,依次读取所述拉取线程队列中的待拉取线程队列,并判断所述当前未分配线程数是否大于0,若是,则将所述未分配线程列表中任一线程分配至所述待拉取线程队列,并将所述待拉取线程计数减1;响应于每次应用数据处理完成,各个业务线程判断是否满足第二线程释放条件或线程拉取条件;若满足第二线程释放条件,则释放至未分配线程列表;所述第二线程释放条件为对应优先级队列的数据接收量与数据处理量的差值小于对应的工作线程数;若满足线程拉取条件,则将对应的优先级队列作为待拉取线程队列加入所述拉取线程队列,并将待拉取线程计数加1;所述线程拉取条件为对应优先级队列的数据缓存量大于对应的工作线程数。8.一种基于线程池的优先队列调度系统,其特征在于,所述系统包括:初始化模块,用于初始化优先级线程池和优先级线程池对象,并监听应用数据投递请求;所述优先级线程池对象包括若干个优先级队列、稳定线程分配比例、线程分配列表、未分配线程列表、拉取线程队列;所述优先级线程池包括管理线程和若干个业务线程;
请求处理模块,用于响应于应用数据投递请求,将各个应用数据按照优先级添加至对应的优先级队列并更新相应的数据缓存量,以及根据所述线程分配列表、所述未分配线程列表和各个优先级队列的数据缓存量,得到当前未分配线程数、当前优先级队列数据缓存量和当前优先级队列线程分配比例;处理期识别模块,用于根据所述当前未分配线程数、所述当前优先级队列数据缓存量、所述当前优先级队列线程分配比例和所述稳定线程分配比例,确定当前系统的数据处理时期;所述数据处理时期包括数据增长期、数据稳定期和数据减少期;线程分配模块,用于根据所述数据处理时期,确定对应的线程分配规则,并通过所述管理线程和所述拉取线程队列,按照所述线程分配规则为各个优先级队列动态分配工作线程;所述线程分配规则包括数据增长期分配规则和数据减少期分配规则。9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一所述方法的步骤。10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一所述方法的步骤。

技术总结
本发明提供了基于线程池的优先队列调度方法、系统、设备及存储介质,所述方法包括:初始化优先级线程池和优先级线程池对象,并监听应用数据投递请求;响应于应用数据投递请求,将各个应用数据按照优先级添加至对应的优先级队列并更新相应的数据缓存量,以及根据线程分配列表、未分配线程列表和各个优先级队列的数据缓存量得到的当前未分配线程数、当前优先级队列数据缓存量和当前优先级队列线程分配比例,结合预设的稳定线程分配比例,确定当前系统的数据处理时期,并通过管理线程和拉取线程队列,按照根据数据处理时期确定对应的线程分配规则为各个优先级队列动态分配工作线程。本发明能够最大化利用服务器资源,提高其响应速度,提升用户体验。提升用户体验。提升用户体验。


技术研发人员:范其锦 张锦秀 黄微
受保护的技术使用者:广州市玄武无线科技股份有限公司
技术研发日:2022.10.27
技术公布日:2022/11/25
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1