CN109766171A - 任务处理方法、装置、设备以及存储介质 - Google Patents
任务处理方法、装置、设备以及存储介质 Download PDFInfo
- Publication number
- CN109766171A CN109766171A CN201811489995.7A CN201811489995A CN109766171A CN 109766171 A CN109766171 A CN 109766171A CN 201811489995 A CN201811489995 A CN 201811489995A CN 109766171 A CN109766171 A CN 109766171A
- Authority
- CN
- China
- Prior art keywords
- thread
- task
- busy
- timer
- condition
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明提供一种任务处理方法、装置、设备以及存储介质,该方法包括:获取计算机***中间层服务中任务集合的优先级排序,其中,任务集合中的任务包括定时器任务和请求任务;按照优先级排序将任务集合中的任务分配至第一线程和第二线程,其中,任务集合中的每个任务分配至一个线程;获取第一线程的忙闲状态和第二线程的忙闲状态,其中,忙闲状态至少包括忙碌状态和空闲状态;当第一线程的忙闲状态和第二线程的忙闲状态不相同时,调整第一线程处理任务的数量和第二线程处理任务的数量,以使处于忙碌状态的线程将未处理的任务分配至处于空闲状态的线程。将未处理任务分配至其他线程,及时处理任务;定时器任务和请求任务线程共享,提高线程使用率。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种任务处理方法、装置、设备以及存储介质。
背景技术
在计算机***中,中间层服务是连接上层应用和底层硬件之间的桥梁,各个服务需要分别处理来自上层应用下发和底层硬件上报的大量请求,这些请求通常被抽象成统一的任务进行处理。同时有些任务需要保证周期性运行,因此需要在***服务中设置定时器。
为了保证任务处理的及时性及不阻塞主线程的正常逻辑,这些任务通常被分发到任务线程中进行异步处理。同时有些任务需要保证周期性运行,因此需要在***服务中设置定时器。当计算机***在遇到多任务和多定时器待处理情况,将定时器放在单一的处理线程,任务放在独立创建的线程池中进行处理,且线程池中的各个线程之间独立处理分发到本线程的任务。
然而,由于定时器处理线程与任务处理线程独立处理,且各个任务处理线程之间独立处理,当某个线程处理某个任务或者定时器的耗时较长时,容易导致***中各个线程的忙碌和空闲状态不一致,线程资源无法充分利用。
发明内容
本发明提供一种任务处理方法、装置、设备以及存储介质,旨在解决现有的任务处理方法采取独立处理方式,导致***中线程资源无法充分利用的技术问题。
第一方面,本发明提供一种任务处理方法,包括:获取计算机***中间层服务中任务集合的优先级排序,其中,任务集合中的任务包括定时器任务和请求任务;按照优先级排序将任务集合中的任务分配至第一线程和第二线程,其中,任务集合中的每个任务分配至一个线程;获取第一线程的忙闲状态和第二线程的忙闲状态,其中,忙闲状态至少包括忙碌状态和空闲状态;当第一线程的忙闲状态和第二线程的忙闲状态不相同时,调整第一线程处理任务的数量和第二线程处理任务的数量,以使处于忙碌状态的线程将未处理的任务分配至处于空闲状态的线程。
在本发明提供的一种任务处理方法中,将定时器任务和请求任务混合后进行排序,并根据混合后排序结果分配线程。并获取每个线程的忙闲状态,根据线程的忙闲状态调整每个线程处理任务的数量,以使处于忙碌状态的线程将未处理的任务分配至处于空闲状态的线程,使得***中各个线程的忙碌和空闲状态一致,实现线程的充分利用。
可选地,调整第一线程处理任务的数量和第二线程处理任务的数量,具体包括:当第一线程的忙闲状态为忙碌状态,且第二线程的忙闲状态为空闲状态时,将第一线程未处理的任务分配至第二线程;或者,当第一线程的忙闲状态为空闲状态,且第二线程的忙闲状态为忙碌状态时,将第二线程未处理的任务分配至第一线程。
在本发明提供的一种任务处理方法中,处于忙碌状态的线程将未处理的任务分配至处于空闲状态的线程,使得***中各个线程的忙碌和空闲状态一致,实现线程的充分利用。
可选地,在调整第一线程处理任务的数量和第二线程处理任务的数量之后,还包括:当第一线程的忙闲状态和第二线程的忙闲状态均为忙碌时,在线程池中增加第三线程,第三线程处于空闲状态,其中,线程池包括第一线程、第二线程以及第三线程;将第一线程未处理的任务和第二线程未处理的任务分配至第三线程。
在本发明提供的一种任务处理方法中,当线程池中所有线程处于忙碌状态时,在线程池中新增新的线程,以使新线程可以分担其他处于忙碌状态的线程的任务,及时处理任务,提高任务处理效率。
可选地,在按照优先级排序将任务集合中的任务分配至第一线程和第二线程之后,还包括:获取定时器任务的时限状态;其中,定时器任务的时限状态包括超时状态和未超时状态;根据定时器任务的时限状态、第一线程的忙闲状态以及第二线程的忙闲状态调整定时器任务所分配的线程,其中,定时器任务所分配的线程为第一线程或者第二线程。
在本发明提供的一种任务处理方法中,针对定时器任务对时限要求严格的情况,监控定时器任务的实现状态,根据线程池中第一线程和第二线程的忙闲状态,以及定时器的时限状态,以调整定时器所分配线程,避免了定时器任务出现超时情况。
可选地,根据定时器任务的时限状态、第一线程的忙闲状态以及第二线程的忙闲状态调整定时器任务所分配的线程,具体包括:当定时器分配至第一线程,定时器任务的时限状态为超时状态且第二线程的状态为空闲状态时,将定时器分配至第二线程;或者,当定时器分配至第一线程,定时器任务的时限状态为超时状态且第二线程的状态为忙碌状态时,在线程池中增加第四线程,将定时器任务分配至第四线程,其中,第四线程处于空闲状态,线程池包括第一线程、第二线程以及第四线程。
在本发明提供的一种任务处理方法中,当定时器任务的状态为超时状态时,将定时器任务转分配至处于空闲状态的线程,及时处理处于超时状态的定时器任务,提高线程处理定时器任务的效率。
可选地,在按照优先级排序将任务集合中的任务分配至第一线程和第二线程之后,还包括:当处于忙碌状态的第一线程的数量和处于忙碌状态的第二线程的数量之和小于任务的数量时,关闭第一线程或者第二线程;或者,当处于忙碌状态的第一线程的数量和处于忙碌状态的第二线程的数量之和大于任务的数量时,在线程池中增加第五线程,其中,线程池包括第一线程、第二线程以及第五线程,第五线程用于处理任务。
在本发明提供的一种任务处理方法中,根据处于忙碌状态的线程的数量与任务的数量的关系,关闭或者新增线程,以实现线程数量的动态调整。
下面对任务处理装置、电子设备和存储介质进行介绍,其实现原理和技术效果与上述方法原理和技术效果类似,此处不再赘述。
第二方面,本发明提供一种任务处理装置,其特征在于,包括:第一获取模块,用于获取计算机***中间层服务中任务集合的优先级排序,其中,任务集合中的任务包括定时器任务和请求任务;第一分配模块,用于按照优先级排序将任务集合中的任务分配至第一线程和第二线程,其中,任务集合中的每个任务分配至一个线程;第一获取模块还用于获取第一线程的忙闲状态和第二线程的忙闲状态,其中,忙闲状态至少包括忙碌状态和空闲状态;第一调整模块,用于当第一线程的忙闲状态和第二线程的忙闲状态不相同时,调整第一线程处理任务的数量和第二线程处理任务的数量,以使处于忙碌状态的线程将未处理的任务分配至处于空闲状态的线程。
可选地,第一调整模块,具体包括:当第一线程的忙闲状态为忙碌状态,且第二线程的忙闲状态为空闲状态时,将第一线程未处理的任务分配至第二线程;或者,当第一线程的忙闲状态为空闲状态,且第二线程的忙闲状态为忙碌状态时,将第二线程未处理的任务分配至第一线程。
可选地,还包括:增加模块,用于当第一线程的忙闲状态和第二线程的忙闲状态均为忙碌时,在线程池中增加第三线程,第三线程处于空闲状态,其中,线程池包括第一线程、第二线程以及第三线程;第二分配模块,用于将第一线程未处理的任务和第二线程未处理的任务分配至第三线程。
可选地,还包括:第二获取模块,用于获取定时器任务的时限状态;其中,定时器任务的时限状态包括超时状态和未超时状态;第二调整模块,用于根据定时器任务的时限状态、第一线程的忙闲状态以及第二线程的忙闲状态调整定时器任务所分配的线程,其中,定时器任务所分配的线程为第一线程或者第二线程。
可选地,第二调整模块具体包括:当定时器分配至第一线程,定时器任务的时限状态为超时状态且第二线程的状态为空闲状态时,将定时器分配至第二线程;或者,当定时器分配至第一线程,定时器任务的时限状态为超时状态且第二线程的状态为忙碌状态时,在线程池中增加第四线程,将定时器任务分配至第四线程,其中,第四线程处于空闲状态,线程池包括第一线程、第二线程以及第四线程。
可选地,还包括:第三调整模块,用于当处于忙碌状态的第一线程的数量和处于忙碌状态的第二线程的数量之和小于任务的数量时,关闭第一线程或者第二线程;或者,当处于忙碌状态的第一线程的数量和处于忙碌状态的第二线程的数量之和大于任务的数量时,在线程池中增加第五线程,其中,线程池包括第一线程、第二线程以及第五线程,第五线程用于处理任务。
第三方面,本发明一种电子设备,其特征在于,包括:至少一个处理器和存储器;其中,存储器存储计算机执行指令;至少一个处理器执行存储器存储的计算机执行指令,使得至少一个处理器执行第一方面及可选方案涉及的任务处理方法。
第四方面,本发明一种计算机可读存储介质,其特征在于,计算机可读存储介质中存储有计算机执行指令,当处理器执行计算机执行指令时,实现第一方面及可选方案涉及的任务处理方法。
本发明提供的任务处理方法、装置、设备以及存储介质,在任务处理方法中,将定时器任务和请求任务进行排序,并利用排序后的优先级将定时器任务和请求任务分配至线程,实现定时器任务和请求任务的线程共享,并监控线程的忙闲状态,当线程的忙闲状态不一致时,将处于忙碌状态的线程中未处理的任务分配至其他处于空闲状态的线程,以实现及时处理任务,并且定时器任务和请求任务的线程共享,可以提高线程使用率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明根据一示例性实施例示出的任务处理方法的流程示意图;
图2为本发明根据另一示例性实施例示出的任务处理方法的流程示意图;
图3为本发明根据又一示例性实施例示出的任务处理方法的流程示意图;
图4为本发明根据再一示例性实施例示出的任务处理方法的流程示意图;
图5为本发明根据一示例性实施例示出的任务处理装置的结构示意图;
图6为本发明根据一示例性实施例示出的电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明提供一种任务处理方法、装置、设备以及存储介质,旨在解决现有的任务处理方法采取独立处理方式,导致***中线程资源无法充分利用的技术问题。
图1为本发明根据一示例性实施例示出的任务处理方法的流程示意图。如图1所示,本实施例提供的任务处理方法,包括:
S101、获取计算机***中间层服务中任务集合的优先级排序。
更具体地,任务集合中的任务包括定时器任务和请求任务。一般情况,定时器任务的优先级高于请求任务。定时器任务之间的优先级根据定时器任务的超时状态、距离超时时间确定。请求任务之间的优先级根据发起请求任务的对象以及请求任务的发起时间确定。
例如:在任务集合中包括有定时器任务1、定时器任务2、请求任务3和请求任务4。一般情况下,定时器任务1和定时器任务2的优先级高于请求任务3和请求任务4。定时器任务1和定时器任务2均未超时,且定时器任务1距离超时时间大于定时器任务2,则定时器任务2的优先级高于定时器任务1。请求任务3和请求任务4均由底层硬件发送,且请求任务3的发起请求时间晚于请求任务4的发起请求时间,请求任务4的优先级高于请求任务3的优先级,则任务集合的优先级为:定时器任务2、定时器任务1、请求任务4以及请求任务3。
又例如:在任务集合中包括有定时器任务1、定时器任务2、请求任务3和请求任务4。定时器任务1超时,定时器任务2均未超时,则定时器任务1的优先级高于定时器任务2。请求任务3由上层应用发送,请求任务4由底层硬件发送,请求任务3的优先级高于请求任务4的优先级,则任务集合的优先级为:定时器任务1、定时器任务2、请求任务3以及请求任务4。
S102、按照优先级排序将任务集合中的任务分配至第一线程和第二线程。
更具体地,线程池包括第一线程和第二线程,任务集合中的每个任务分配至一个线程,按照任务集合的优先级分配线程,任务分配的线程可以为第一线程或者第二线程。
例如:获得任务集合的优先级为:定时器任务2、定时器任务1、请求任务4以及请求任务3。且第一线程和第二线程均为未处理任何任务。则将定时器任务2分配至第一线程,将定时器任务1分配至第二线程,将请求任务4分配至第一线程,将请求任务3分配至第二线程。
又例如:获得任务集合的优先级为:定时器任务2、定时器任务1、请求任务4以及请求任务3。且第一线程有两个任务待处理,第二线程未处理任何任务。第二线程处理两个定时器任务所需时间大于第一线程处理两个待处理任务时间,则将定时器任务2、定时器任务1以及请求任务3依次分配分配至第二线程,使得第二线程处理任务的顺序为:定时器任务2、定时器任务1以及请求任务3。将请求任务4分配至第一线程,以使第一线程在处理完两个待处理任务后,可以处理请求任务3,且保证请求任务3先于请求任务4。
S103、获取第一线程的忙闲状态和第二线程的忙闲状态。
更具体地,线程的忙闲状态至少包括忙碌状态和空闲状态。获取第一线程的忙闲状态和第二线程的忙闲状态,以调整第一线程处理任务的数量和第二线程处理任务的数量。
S104、判断第一线程的忙闲状态和第二线程忙闲状态是否一致,若判断结果为是,则进入步骤S105。若判断结果为否,则进入步骤S106。
S105、不调整第一线程处理任务的数量和第二线程处理任务的数量。
更具体地,当判断第一线程的忙闲状态和第二线程忙闲状态是一致时,则不调整第一线程处理任务的数量和第二线程处理任务的数量。
S106、调整第一线程处理任务的数量和第二线程处理任务的数量。
若判断结果为否,调整第一线程处理任务的数量和第二线程处理任务的数量,以使处于忙碌状态的线程将未处理的任务分配至处于空闲状态的线程。
更具体地,当第一线程的忙闲状态为忙碌状态,且第二线程的忙闲状态为空闲状态时,将第一线程未处理的任务分配至第二线程。当第一线程的忙闲状态为空闲状态,且第二线程的忙闲状态为忙碌状态时,将第二线程未处理的任务分配至第一线程。以使第一线程的忙闲状态和第二线程的忙闲状态一致。当第一线程的忙闲状态和第二线程的忙闲状态均为空闲状态时,或者,当第一线程的忙闲状态和第二线程的忙闲状态均为忙碌状态时,均不调整第一线程处理任务的数量和第二线程处理任务的数量。
在本实施例提供的任务处理方法中,将定时器任务和请求任务混合后进行排序,并利用排序后的优先级将定时器任务和请求任务分配至线程,并监控线程的忙闲状态,当线程的忙闲状态不一致时,将处于忙碌状态的线程中未处理的任务分配至其他线程,以实现及时处理任务,并且定时器任务和请求任务的线程共享,可以提高线程使用率。
图2为本发明根据另一示例性实施例示出的任务处理方法的流程示意图。如图2所示,本实施例提供的任务处理方法包括:
S201、获取计算机***中间层服务中任务集合的优先级排序。
S202、按照优先级排序将任务集合中的任务分配至第一线程和第二线程。
S203、获取第一线程的忙闲状态和第二线程的忙闲状态。
S204、判断第一线程的忙闲状态和第二线程忙闲状态是否一致,若判断结果为是,则进入步骤S205。若判断结果为否,则进入步骤S206。
S205、不调整第一线程处理任务的数量和第二线程处理任务的数量。
S206、调整第一线程处理任务的数量和第二线程处理任务的数量。
S207、判断第一线程的忙闲状态和第二线程忙闲状态是否均为忙碌状态。若判断结果为否,则结束流程。若判断结果为是,则进入S208。
S208、当第一线程的忙闲状态和第二线程的忙闲状态均为忙碌时,在线程池中增加第三线程。
更具体地,判断第一线程的忙闲状态和第二线程忙闲状态是否一致,若判断结果为是,继续判断第一线程的忙闲状态和第二线程的忙闲状态是否均为忙碌状态,若判断结果为是,则在线程池中增加第三线程,且第三线程处于空闲状态,使得线程池包括第一线程、第二线程以及第三线程。
S209、将第一线程未处理的任务和第二线程未处理的任务分配至第三线程。
更具体地,将第一线程未处理的任务和第二线程未处理的任务分配至第三线程,能够使未处理的任务得到及时处理,尤其是对时间要求更高的定时器任务。
在本实施例提供的任务处理方法中,当线程池中所有线程处于忙碌状态时,在线程池中新增新的线程,以使新线程可以分担其他处于忙碌状态的线程的任务,及时处理任务,提高任务处理效率。
图3为本发明根据又一示例性实施例示出的任务处理方法的流程示意图。如图3所示,本实施例提供的任务处理方法包括:
S301、获取计算机***中间层服务中任务集合的优先级排序。
S302、按照优先级排序将任务集合中的任务分配至第一线程和第二线程。
S303、获取定时器任务的时限状态。
更具体地,定时器任务的时限状态包括超时状态和未超时状态。
S304、根据定时器任务的时限状态、第一线程的忙闲状态以及第二线程的忙闲状态调整定时器任务所分配的线程。
更具体地,当定时器任务分配至第一线程,定时器任务的时限状态为超时状态,第二线程的状态为空闲状态时,将定时器分配至第二线程,以使超时状态的定时器任务及时处理。
当定时器任务分配至第一线程,定时器任务的时限状态为超时状态且第二线程的状态为忙碌状态时,在线程池中增加第四线程,将定时器任务分配至第四线程,使得线程池包括第一线程、第二线程以及第四线程,其中,第四线程处于空闲状态。
对应地,当定时器任务分配至第二线程,定时器任务的时限状态为超时状态,第一线程的状态为空闲状态时,将定时器分配至第一线程,以使超时状态的定时器任务及时处理。
当定时器任务分配至第二线程,定时器任务的时限状态为超时状态且第一线程的状态为忙碌状态时,在线程池中增加第四线程,将定时器任务分配至第四线程,以使超时状态的定时器任务及时处理。
在本实施例提供的任务处理方法中,当定时器任务的状态为超时状态时,将定时器任务转分配至处于空闲状态的线程,及时处理处于超时状态的定时器任务,提高线程处理定时器任务的效率。
图4为本发明根据再一示例性实施例示出的任务处理方法的流程示意图。如图4所示,本实施例提供的任务处理方法包括:
S401、获取计算机***中间层服务中任务集合的优先级排序。
S402、按照优先级排序将任务集合中的任务分配至第一线程和第二线程。
S403、判断处于忙碌状态的第一线程的数量和处于忙碌状态的第二线程的数量之和小于任务的数量,若判断结果为是,则进入S404,否则,进入S405。
S404、关闭第一线程或者第二线程。
更具体地,当处于忙碌状态的第一线程的数量和处于忙碌状态的第二线程的数量之和小于任务的数量时,关闭第一线程或者第二线程,以减少线程数量,提高线程利用率。
S405、在线程池中增加第五线程。
更具体地,当处于忙碌状态的第一线程的数量和处于忙碌状态的第二线程的数量之和大于任务的数量时,在线程池中增加第五线程,使得线程池包括第一线程、第二线程以及第五线程,其中,第五线程用于处理任务,以及时处理任务,提高任务处理效率。
在本实施例提供的任务处理方法中,根据处于忙碌状态的线程的数量与任务的数量的关系,关闭或者新增线程,以实现线程数量的动态调整。
图5为本发明根据一示例性实施例示出的任务处理装置的结构示意图。如图5所示,本实施例提供的任务处理装置包括:第一获取模块101,用于获取计算机***中间层服务中任务集合的优先级排序,其中,任务集合中的任务包括定时器任务和请求任务;第一分配模块102,用于按照优先级排序将任务集合中的任务分配至第一线程和第二线程,其中,任务集合中的每个任务分配至一个线程;第一获取模块101还用于获取第一线程的忙闲状态和第二线程的忙闲状态,其中,忙闲状态至少包括忙碌状态和空闲状态;第一调整模块103,用于当第一线程的忙闲状态和第二线程的忙闲状态不相同时,调整第一线程处理任务的数量和第二线程处理任务的数量,以使处于忙碌状态的线程将未处理的任务分配至处于空闲状态的线程。
可选地,第一调整模块103,具体包括:当第一线程的忙闲状态为忙碌状态,且第二线程的忙闲状态为空闲状态时,将第一线程未处理的任务分配至第二线程;或者,当第一线程的忙闲状态为空闲状态,且第二线程的忙闲状态为忙碌状态时,将第二线程未处理的任务分配至第一线程。
可选地,还包括:增加模块104,用于当第一线程的忙闲状态和第二线程的忙闲状态均为忙碌时,在线程池中增加第三线程,第三线程处于空闲状态,其中,线程池包括第一线程、第二线程以及第三线程;第二分配模块105,用于将第一线程未处理的任务和第二线程未处理的任务分配至第三线程。
可选地,还包括:第二获取模块106,用于获取定时器任务的时限状态;其中,定时器任务的时限状态包括超时状态和未超时状态;第二调整模块107,用于根据定时器任务的时限状态、第一线程的忙闲状态以及第二线程的忙闲状态调整定时器任务所分配的线程,其中,定时器任务所分配的线程为第一线程或者第二线程。
可选地,第二调整模块107具体包括:当定时器分配至第一线程,定时器任务的时限状态为超时状态且第二线程的状态为空闲状态时,将定时器分配至第二线程;或者,当定时器分配至第一线程,定时器任务的时限状态为超时状态且第二线程的状态为忙碌状态时,在线程池中增加第四线程,将定时器任务分配至第四线程,其中,第四线程处于空闲状态,线程池包括第一线程、第二线程以及第四线程。
可选地,还包括:第三调整模块108,用于当处于忙碌状态的第一线程的数量和处于忙碌状态的第二线程的数量之和小于任务的数量时,关闭第一线程或者第二线程;或者,当处于忙碌状态的第一线程的数量和处于忙碌状态的第二线程的数量之和大于任务的数量时,在线程池中增加第五线程,其中,线程池包括第一线程、第二线程以及第五线程,第五线程用于处理任务。
图6为本发明根据一示例性实施例示出的电子设备的结构示意图,如图6所示,本实施例的电子设备200包括:处理器201以及存储器202,其中,
存储器202,用于存储计算机执行指令;
处理器201,用于执行存储器存储的计算机执行指令,以实现上述实施例中接收设备所执行的各个步骤。具体可以参见前述方法实施例中的相关描述。
可选的,存储器202既可以是独立的,也可以跟处理器201集成在一起。
当存储器202独立设置时,该流量控制设备200还包括总线203,用于连接所述存储器202和处理器201。
本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如上所述的任务处理方法。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (10)
1.一种任务处理方法,其特征在于,包括:
获取计算机***中间层服务中任务集合的优先级排序,其中,所述任务集合中的任务包括定时器任务和请求任务;
按照所述优先级排序将所述任务集合中的任务分配至第一线程和第二线程,其中,所述任务集合中的每个任务分配至一个线程;
获取所述第一线程的忙闲状态和所述第二线程的忙闲状态,其中,所述忙闲状态至少包括忙碌状态和空闲状态;
当所述第一线程的忙闲状态和所述第二线程的忙闲状态不相同时,调整所述第一线程处理任务的数量和所述第二线程处理任务的数量,以使处于忙碌状态的线程将未处理的任务分配至处于空闲状态的线程。
2.根据权利要求1所述的方法,其特征在于,所述调整所述第一线程处理任务的数量和所述第二线程处理任务的数量,具体包括:
当所述第一线程的忙闲状态为忙碌状态,且所述第二线程的忙闲状态为空闲状态时,将所述第一线程未处理的任务分配至所述第二线程;
或者,
当所述第一线程的忙闲状态为空闲状态,且所述第二线程的忙闲状态为忙碌状态时,将所述第二线程未处理的任务分配至所述第一线程。
3.根据权利要求2所述的方法,其特征在于,在所述调整所述第一线程处理任务的数量和所述第二线程处理任务的数量之后,还包括:
当所述第一线程的忙闲状态和所述第二线程的忙闲状态均为忙碌时,在线程池中增加第三线程,所述第三线程处于空闲状态,其中,所述线程池包括所述第一线程、所述第二线程以及所述第三线程;
将所述第一线程未处理的所述任务和所述第二线程未处理的所述任务分配至所述第三线程。
4.根据权利要求1所述的方法,其特征在于,在按照所述优先级排序将所述任务集合中的任务分配至第一线程和第二线程之后,还包括:
获取所述定时器任务的时限状态;其中,所述定时器任务的时限状态包括超时状态和未超时状态;
根据所述定时器任务的时限状态、所述第一线程的忙闲状态以及所述第二线程的忙闲状态调整所述定时器任务所分配的线程,其中,所述定时器任务所分配的线程为所述第一线程或者所述第二线程。
5.根据权利要求4所述的方法,其特征在于,所述根据所述定时器任务的时限状态、所述第一线程的忙闲状态以及所述第二线程的忙闲状态调整所述定时器任务所分配的线程,具体包括:
当所述定时器任务分配至所述第一线程,所述定时器任务的时限状态为超时状态且所述第二线程的状态为空闲状态时,将所述定时器分配至所述第二线程;
或者,
当所述定时器任务分配至所述第一线程,所述定时器任务的时限状态为超时状态且所述第二线程的状态为忙碌状态时,在所述线程池中增加第四线程,将所述定时器任务分配至所述第四线程,其中,所述第四线程处于空闲状态,所述线程池包括所述第一线程、所述第二线程以及所述第四线程。
6.根据权利要求1所述的方法,其特征在于,在按照所述优先级排序将所述任务集合中的任务分配至第一线程和第二线程之后,还包括:
当处于忙碌状态的所述第一线程的数量和处于忙碌状态的所述第二线程的数量之和小于所述任务的数量时,关闭所述第一线程或者所述第二线程;
或者,
当处于忙碌状态的所述第一线程的数量和处于忙碌状态的所述第二线程的数量之和大于所述任务的数量时,在线程池中增加第五线程,其中,所述线程池包括所述第一线程、所述第二线程以及所述第五线程,所述第五线程用于处理所述任务。
7.一种任务处理装置,其特征在于,包括:
第一获取模块,用于获取计算机***中间层服务中任务集合的优先级排序,其中,所述任务集合中的任务包括定时器任务和请求任务;
第一分配模块,用于按照所述优先级排序将所述任务集合中的任务分配至第一线程和第二线程,其中,所述任务集合中的每个任务分配至一个线程;
所述第一获取模块还用于获取所述第一线程的忙闲状态和所述第二线程的忙闲状态,其中,所述忙闲状态至少包括忙碌状态和空闲状态;
第一调整模块,用于当所述第一线程的忙闲状态和所述第二线程的忙闲状态不相同时,调整所述第一线程处理任务的数量和所述第二线程处理任务的数量,以使处于忙碌状态的线程将未处理的任务分配至处于空闲状态的线程。
8.根据权利要求7所述的装置,其特征在于,所述第一调整模块,具体包括:
当所述第一线程的忙闲状态为忙碌状态,且所述第二线程的忙闲状态为空闲状态时,将所述第一线程未处理的任务分配至所述第二线程;
或者,
当所述第一线程的忙闲状态为空闲状态,且所述第二线程的忙闲状态为忙碌状态时,将所述第二线程未处理的任务分配至所述第一线程。
9.一种电子设备,其特征在于,包括:至少一个处理器和存储器;
其中,所述存储器存储计算机执行指令;
所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如权利要求1或2所述的任务处理方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如权利要求如权利要求1或2所述的任务处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811489995.7A CN109766171B (zh) | 2018-12-06 | 2018-12-06 | 任务处理方法、装置、设备以及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811489995.7A CN109766171B (zh) | 2018-12-06 | 2018-12-06 | 任务处理方法、装置、设备以及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109766171A true CN109766171A (zh) | 2019-05-17 |
CN109766171B CN109766171B (zh) | 2021-03-30 |
Family
ID=66451281
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811489995.7A Active CN109766171B (zh) | 2018-12-06 | 2018-12-06 | 任务处理方法、装置、设备以及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109766171B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110134578A (zh) * | 2019-05-23 | 2019-08-16 | 浙江齐治科技股份有限公司 | 一种数据处理方法及装置 |
CN111651272A (zh) * | 2020-05-28 | 2020-09-11 | 苏州大学 | 一种嵌入式实时操作的线程时间管理方法及装置 |
CN111767125A (zh) * | 2020-06-15 | 2020-10-13 | 杭州数梦工场科技有限公司 | 任务执行方法、装置、电子设备、存储介质 |
CN113342886A (zh) * | 2021-06-23 | 2021-09-03 | 杭州数梦工场科技有限公司 | 数据交换方法和装置 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101262367A (zh) * | 2008-03-07 | 2008-09-10 | 中兴通讯股份有限公司 | 性能数据的采集方法和装置 |
CN101739293A (zh) * | 2009-12-24 | 2010-06-16 | 航天恒星科技有限公司 | 一种基于多线程的卫星数据产品生产任务并行调度方法 |
CN103645909A (zh) * | 2013-12-30 | 2014-03-19 | 中国烟草总公司湖南省公司 | 定时任务的处理方法及装置 |
CN105760234A (zh) * | 2016-03-17 | 2016-07-13 | 联动优势科技有限公司 | 一种线程池管理方法及装置 |
CN106445659A (zh) * | 2016-09-09 | 2017-02-22 | 北京控制工程研究所 | 一种空间飞行器周期性混成随机任务调度方法 |
CN106874090A (zh) * | 2017-01-23 | 2017-06-20 | 北京思特奇信息技术股份有限公司 | 基于云***的作业调度方法和*** |
CN108268546A (zh) * | 2016-12-30 | 2018-07-10 | ***通信集团黑龙江有限公司 | 一种优化数据库的方法及装置 |
CN108446180A (zh) * | 2018-03-23 | 2018-08-24 | 南京航空航天大学 | 一种基于数据迁移的数据中心动态任务调度方法 |
-
2018
- 2018-12-06 CN CN201811489995.7A patent/CN109766171B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101262367A (zh) * | 2008-03-07 | 2008-09-10 | 中兴通讯股份有限公司 | 性能数据的采集方法和装置 |
CN101739293A (zh) * | 2009-12-24 | 2010-06-16 | 航天恒星科技有限公司 | 一种基于多线程的卫星数据产品生产任务并行调度方法 |
CN103645909A (zh) * | 2013-12-30 | 2014-03-19 | 中国烟草总公司湖南省公司 | 定时任务的处理方法及装置 |
CN105760234A (zh) * | 2016-03-17 | 2016-07-13 | 联动优势科技有限公司 | 一种线程池管理方法及装置 |
CN106445659A (zh) * | 2016-09-09 | 2017-02-22 | 北京控制工程研究所 | 一种空间飞行器周期性混成随机任务调度方法 |
CN108268546A (zh) * | 2016-12-30 | 2018-07-10 | ***通信集团黑龙江有限公司 | 一种优化数据库的方法及装置 |
CN106874090A (zh) * | 2017-01-23 | 2017-06-20 | 北京思特奇信息技术股份有限公司 | 基于云***的作业调度方法和*** |
CN108446180A (zh) * | 2018-03-23 | 2018-08-24 | 南京航空航天大学 | 一种基于数据迁移的数据中心动态任务调度方法 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110134578A (zh) * | 2019-05-23 | 2019-08-16 | 浙江齐治科技股份有限公司 | 一种数据处理方法及装置 |
CN111651272A (zh) * | 2020-05-28 | 2020-09-11 | 苏州大学 | 一种嵌入式实时操作的线程时间管理方法及装置 |
CN111651272B (zh) * | 2020-05-28 | 2023-02-03 | 苏州大学 | 一种嵌入式实时操作的线程时间管理方法及装置 |
CN111767125A (zh) * | 2020-06-15 | 2020-10-13 | 杭州数梦工场科技有限公司 | 任务执行方法、装置、电子设备、存储介质 |
CN111767125B (zh) * | 2020-06-15 | 2023-07-25 | 杭州数梦工场科技有限公司 | 任务执行方法、装置、电子设备、存储介质 |
CN113342886A (zh) * | 2021-06-23 | 2021-09-03 | 杭州数梦工场科技有限公司 | 数据交换方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN109766171B (zh) | 2021-03-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109766171A (zh) | 任务处理方法、装置、设备以及存储介质 | |
CN106293950B (zh) | 一种面向集群***的资源优化管理方法 | |
CN104156267B (zh) | 任务分配方法、任务分配装置及片上网络 | |
CN103999051B (zh) | 用于着色器核心中着色器资源分配的策略 | |
US8695004B2 (en) | Method for distributing computing time in a computer system | |
US8799547B2 (en) | Data packet processing method for a multi core processor | |
US20110145461A1 (en) | Method and device for balancing interrupt load of multicore processor | |
CN102004670A (zh) | 一种基于MapReduce的自适应作业调度方法 | |
CN103023963B (zh) | 一种用于云存储资源优化分配的方法 | |
CN110109756A (zh) | 一种网络靶场构建方法、***及存储介质 | |
CN108462656B (zh) | 基于容器的业务融合部署的资源调度方法及装置 | |
CN105760234A (zh) | 一种线程池管理方法及装置 | |
CN111782355B (zh) | 一种基于混合负载的云计算任务调度方法及*** | |
CN106020934A (zh) | 一种基于虚拟集群在线迁移的优化部署方法 | |
CN103944997B (zh) | 结合随机抽样和虚拟化技术的负载均衡方法 | |
CN110297661B (zh) | 基于amp构架dsp操作***的并行计算方法、***及介质 | |
KR20170116439A (ko) | 태스크 스케줄링 방법 및 장치 | |
CN108958944A (zh) | 一种多核处理***及其任务分配方法 | |
CN103927225A (zh) | 一种多核心架构的互联网信息处理优化方法 | |
US20190087236A1 (en) | Resource scheduling device, system, and method | |
CN108519917A (zh) | 一种资源池分配方法和装置 | |
US8352950B2 (en) | Algorithm to share physical processors to maximize processor cache usage and topologies | |
CN106528065B (zh) | 一种线程获取方法及设备 | |
CN111339027A (zh) | 可重构的人工智能核心与异构多核芯片的自动设计方法 | |
CN105389206A (zh) | 一种云计算数据中心虚拟机资源快速配置方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |