CN111782293A - 一种任务处理方法、装置、电子设备及可读存储介质 - Google Patents
一种任务处理方法、装置、电子设备及可读存储介质 Download PDFInfo
- Publication number
- CN111782293A CN111782293A CN202010601409.4A CN202010601409A CN111782293A CN 111782293 A CN111782293 A CN 111782293A CN 202010601409 A CN202010601409 A CN 202010601409A CN 111782293 A CN111782293 A CN 111782293A
- Authority
- CN
- China
- Prior art keywords
- task
- thread
- executing
- current
- current task
- 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.)
- Pending
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 13
- 238000000034 method Methods 0.000 claims description 41
- 230000006378 damage Effects 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 2
- 238000010295 mobile communication Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44594—Unloading
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5022—Mechanisms to release resources
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明的实施例公开一种任务处理方法、装置、电子设备及可读存储介质,涉及计算机软件技术领域,为减少电子设备系统资源的开销而发明。所述任务处理方法,包括:根据当前任务开始消息,确定当前任务的任务标识;根据当前任务的任务标识及预先加载的任务配置信息,确定执行当前任务的线程池;判断执行当前任务的线程池中,是否有空闲线程;若有,则利用所述空闲线程执行当前任务。本发明适用于对任务进行处理。
Description
技术领域
本发明涉及计算机软件技术领域,尤其涉及一种任务处理方法、装置、电子设备及可读存储介质。
背景技术
随着多核电子设备的普及,电子设备的计算能力日益增长,为了更好地利用日益增长的计算能力,将软件设计为能并发运行多个任务的形式,现有技术中,采用多线程的方式实现多任务并发,而每个任务的启动和完成,伴随着线程的启动和销毁,随着处理任务的不断增多,需反复启动线程和销毁线程,而线程的启动和销毁需占用电子设备系统资源,这样,使电子设备系统资源开销较多。
发明内容
有鉴于此,本发明实施例提供一种任务处理的方法、装置、电子设备及可读存储介质,能够减少电子设备系统资源的开销。
第一方面,本发明实施例提供一种任务处理的方法,包括:根据当前任务开始消息,确定所述当前任务的任务标识;根据所述当前任务的任务标识,以及预先加载的任务配置信息,确定执行所述当前任务的线程池;所述任务配置信息包括任务标识与线程池之间的对应关系;在所述任务配置信息中,不同的任务标识对应不同的线程池,不同的线程池具有各自的线程数量最大值和线程数量最小值;判断执行所述当前任务的线程池中,是否有空闲线程;若有,则利用所述空闲线程执行所述当前任务。
根据本发明实施例的一种具体实现方式,若执行当前任务的线程池中,无空闲线程,则判断执行所述当前任务的线程池中当前的线程数量之和是否达到执行所述当前任务的线程池的线程数量最大值;若执行所述当前任务的线程池中当前的线程数量之和未达到执行所述当前任务的线程池的线程数量最大值,则在执行所述当前任务的线程池中创建新线程;利用所述新线程执行所述当前任务。
根据本发明实施例的一种具体实现方式,还包括:若执行当前任务的线程池中当前的线程数量之和已达到执行所述当前任务的线程池的线程数量最大值,则将所述当前任务放入任务队列中,以等待执行所述当前任务的线程池中有空闲线程时再执行。
根据本发明实施例的一种具体实现方式,在利用所述新线程对所述当前任务执行完毕后,所述方法还包括:判断当前的任务队列中是否有任务在等待执行;若当前的任务队列中有任务在等待执行,则利用所述新线程执行所述任务队列中等待执行的任务。
根据本发明实施例的一种具体实现方式,还包括:若当前的任务队列为空,则判断执行所述当前任务的线程池中当前的线程数量之和是否大于执行所述当前任务的线程池中的线程数量最小值;若执行所述当前任务的线程池中当前的线程数量之和,大于执行所述当前任务的线程池中的线程数量最小值,则销毁所述新线程。
第二方面,本发明实施例提供一种任务处理的装置,包括:第一确定模块、第二确定模块、第三确定模块、第一判断模块和第一执行模块,其中,所述第一确定模块,用于根据当前任务开始消息,确定所述当前任务的任务标识;所述第二确定模块,用于根据所述当前任务的任务标识,以及预先加载的任务配置信息,确定执行所述当前任务的线程池;所述任务配置信息包括任务标识与线程池之间的对应关系;在所述任务配置信息中,不同的任务标识对应不同的线程池,不同的线程池具有各自的线程数量最大值和线程数量最小值;所述第一判断模块,用于判断执行所述当前任务的线程池中,是否有空闲线程;所述第一执行模块,用于若有,则利用所述空闲线程执行所述当前任务。
根据本发明实施例的一种具体实现方式,还包括:第二判断模块、创建模块和第二执行模块,其中,所述第二判断模块,用于若执行当前任务的线程池中,无空闲线程,则判断执行当前任务的线程池中当前的线程数量之和是否达到执行所述当前任务的线程池的线程数量最大值;所述创建模块,用于若执行所述当前任务的线程池中当前的线程数量之和未达到执行当前任务的线程池的线程数量最大值,则在执行当前任务的线程池中创建新线程;所述第二执行模块,用于利用所述新线程执行所述当前任务。
根据本发明实施例的一种具体实现方式,还包括:放入模块,用于若执行当前任务的线程池中当前的线程数量之和已达到执行所述当前任务的线程池的线程数量最大值,则将当前任务放入任务队列中,以等待执行所述当前任务的线程池中有空闲线程时再执行。
根据本发明实施例的一种具体实现方式,还包括:第三判断模块和第三执行模块,其中,所述第三判断模块,用于判断当前的任务队列中是否有任务在等待执行;所述第三执行模块,用于若当前的任务队列中有任务在等待执行,则利用所述新线程执行所述任务队列中等待执行的任务。
根据本发明实施例的一种具体实现方式,还包括:第四判断模块和销毁模块,其中,所述第四判断模块,用于若当前的任务队列为空,则判断执行所述当前任务的线程池中当前的线程数量之和是否大于执行所述当前任务的线程池中的线程数量最小值;所述销毁模块,用于若执行所述当前任务的线程池中当前的线程数量之和大于执行当前任务的线程池中的线程数量最小值,则销毁所述新线程。
第三方面,本发明实施例提供一种电子设备,所述电子设备包括:壳体、处理器、存储器、电路板和电源电路,其中,电路板安置在壳体围成的空间内部,处理器和存储器设置在电路板上;电源电路,用于为上述电子设备的各个电路或器件供电;存储器用于存储可执行程序代码;处理器通过读取存储器中存储的可执行程序代码来运行与可执行程序代码对应的程序,用于执行前述任一实现方式所述的方法。
第四方面,本发明的实施例还提供一种可读存储介质,所述可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现本发明任一实施方式所述的方法。
本发明实施例提供的一种任务处理的方法、装置、电子设备及可读存储介质,根据当前任务的开始消息,确定当前任务的任务标识,根据当前任务的任务标识以及预先加载的任务配置信息,确定执行当前任务的线程池,其中,任务配置信息包括任务标识与线程池之间的对应关系;在任务配置信息中,不同的任务标识对应不同的线程池,不同的线程池具有各自的线程数量最大值和线程数量最小值,并判断执行当前任务的线程池中,是否有空闲线程,若执行当前任务的线程池中,有空闲线程,则利用所述空闲线程执行当前任务,由于根据当前任务的任务标识以及任务标识与线程池之间的对应关系,确定的执行当前任务的线程池,而每个线程池具有线程数量最大值和线程数量最小值,使得线程池中可能存在空闲线程,当通过判断,确定线程池中有空闲线程时,则利用所述空闲线程执行当前任务,这样,在能够完成多任务并发执行时的同时,省去了为执行当前任务创建线程的过程,从而,减少电子设备系统资源的开销。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本发明一实施例提供的任务处理方法的流程示意图;
图2为本发明又一实施例提供的任务处理方法的流程示意图;
图3为本发明一实施例提供的任务处理的装置的结构示意图;
图4为本发明电子设备一个实施例的结构示意图。
具体实施方式
下面结合附图对本发明实施例进行详细描述。
应当明确,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
图1为本发明一实施例提供的任务处理方法的流程示意图,如图1所示,本实施例的方法可以包括:
步骤101、根据当前任务开始消息,确定当前任务的任务标识。
任务可指一系列共同达到某一目的的操作,如利用word编辑一个文档时,输入文字、删除文字和保存文档分别可作为任务;任务可以对应一个线程;任务标识与任务对应,一个任务标识对应唯一的任务。
由于任务开始消息中包括任务标识,当接收到任务开始消息后,可确定与当前任务对应的唯一的任务标识。
步骤102、根据当前任务的任务标识,以及预先加载的任务配置信息,确定执行当前任务的线程池;所述任务配置信息包括任务标识与线程池之间的对应关系;在所述任务配置信息中,不同的任务标识对应不同的线程池,不同的线程池具有各自的线程数量最大值和线程数量最小值。
在一个例子中,可在接收任务开始消息之前,加载任务配置信息。任务配置信息包括任务标识与线程池之间的对应关系,不同的任务标识对应不同的线程池,可根据当前任务标识确定执行当前任务的线程池。
在一个例子中,任务配置信息可包括任务标识与任务类型之间的对应关系,以及任务类型与线程池之间的对应关系,根据任务标识确定当前任务类型,再根据任务类型,确定当前任务对应的线程池。如果不同任务的任务类型相同,那么这些任务对应相同的线程池,如果不同任务的任务类型不同,那么这些任务对应不同的线程池,例如,任务A的配置信息,可为(任务标识A,紧急类型,线程池1),任务B的配置信息,可为(任务标识B,普通类型,线程池2),任务C的配置信息,可为(任务标识C,紧急类型,线程池1),则任务A对应的类型为紧急类型,任务B为普通类型,任务C为紧急类型。在一个例子中,一种任务类型对应一个线程池。
每个线程池具有的线程数量最大值和最小值,可为允许线程池内存在的线程数量的最大值和最小值,例如线程池1具有的线程数量最大值为100,线程最小数量为10,表示线程池1中线程数量最多不超过100个,最少不少于10个。各个线程池具有的线程数量对应的最大值和最小值可全部相同,也可部分相同,还可以全部不相同。线程池具有的线程数量最大值和最小值,可在线程池执行对应类型的任务时,将线程池中当前的线程数量控制在一定范围内,根据需要可动态调整线程池中线程的数量。
当配置信息中包括任务类型与线程池之间的对应关系,则可根据当前任务的任务类型,确定执行当前任务的线程池,这样,可将不同任务类型的任务由不同的线程池及时地执行,避免了现有技术中属于同种类型的任务大量启动,对应的创建和销毁线程,导致占用较多的电子设备系统资源,导致其它类型的任务得不到及时处理的问题。如任务A的配置信息,可为(任务标识A,紧急类型,线程池1),那么,当前任务为A的任务类型为紧急类型,则根据紧急类型及任务A的配置信息,确定执行当前任务A的线程池为线程池1。执行当前任务的线程池可为在当前任务开始前,针对与当前任务的任务类型相同的任务,已经创建的线程池。执行当前任务的线程池中当前线程的总数N可为大于等于该线程池具有的线程数量最小值,小于等于该线程池具有的线程数量的最大值。在一个例子中,当第一个任务开始时,可根据对应的配置信息创建线程池,且线程池中有一个线程执行该任务;当第二个任务开始时,判断线程池中的线程数量是否达到最大值和是否有空闲线程,如果没达到最大值也没有空闲线程,则创建一个新线程执行第二个任务。
步骤103、判断执行当前任务的线程池中,是否有空闲线程。
执行当前任务的线程池中的线程可包括空闲线程和正在执行任务的线程;空闲线程可为未执行任务的线程。
步骤104、若有,则利用所述空闲线程执行当前任务。
如果执行当前任务的线程池中,存在当前未执行任务的空闲线程时,则由空闲线程执行当前任务。
本实施例,根据当前任务开始消息,确定当前任务的任务标识,根据当前任务的任务标识以及预先加载的任务配置信息,确定执行当前任务的任务类型,其中,任务配置信息包括任务标识与线程池之间的对应关系;在任务配置信息中,不同的任务标识对应不同的线程池,不同的线程池具有各自的线程数量最大值和线程数量最小值,并判断执行当前任务的线程池中,是否有空闲线程,若有,则利用所述空闲线程执行当前任务,由于根据当前任务的任务标识以及任务标识与线程池之间的对应关系,确定的执行当前任务的线程池,而每个线程池具有线程数量最大值和线程数量最小值,使得线程池中可能存在空闲线程,当通过判断,确定线程池中有空闲线程时,则利用所述空闲线程执行当前任务,这样,在能够完成多任务并发执行的同时,省去了为执行当前任务创建线程的过程,从而,减少电子设备系统资源的开销,提高执行任务的效率。
参见图2,本申请又一实施例的处理任务的方法,与上述实施例基本相同,不同之处在于,上述实施例的步骤104可替换为如下步骤:
步骤105、若执行当前任务的线程池中,无空闲线程,则判断执行当前任务的线程池中当前的线程数量之和是否达到执行当前任务的线程池的线程数量最大值。
如果执行当前任务的线程池中的线程都在执行任务,则判断当前执行任务的线程池中当前的线程个数之和,是否达到允许该线程池存在的线程的最大值。
步骤106、若执行当前任务的线程池中当前的线程数量之和未达到执行当前任务的线程池的线程数量最大值,则在执行当前任务的线程池中创建新线程。
若执行当前任务的线程池中当前的线程数量之和为20,执行当前任务的线程池具有的线程数量最大值为100,则在执行当前任务的线程池中,创建第21个线程。
步骤107、利用所述新线程执行当前任务。
由步骤106所创建的第21个线程执行当前任务。
本实施例,如果执行当前任务的线程池中,无空闲线程,则判断执行当前任务的线程池中当前的线程数量之和,是否达到执行当前任务的线程池的线程数量最大值,若执行当前任务的线程池中当前的线程数量之和,未达到执行当前任务的线程池的线程数量最大值,则在执行当前任务的线程池中创建新线程,利用所述新线程执行当前任务,由于执行当前任务的线程池中当前的线程数量之和,未达到执行当前任务的线程池的线程数量最大值,则创建的新线程在执行当前任务后不必销毁,这样,在能够完成执行当前任务的同时,省去了销毁线程的过程,从而,节省了系统开销,提高执行任务的效率。
本申请再一实施例的处理任务的方法,与上述实施例基本相同,不同之处在于,本实施例的处理任务的方法,在利用所述新线程对当前任务执行完毕后,所述方法还包括:
步骤108、判断当前的任务队列中是否有任务在等待执行。
在新线程对当前任务执行完毕前,执行当前任务的线程池中没有空闲线程,当新线程对当前任务执行完毕后,新线程成为空闲线程,这时,可判断当前的任务队列中是否有任务在等待执行。任务队列可根据任务开始的先后,确定任务队列中任务的排序。
步骤109、若当前的任务队列中有任务在等待执行,则利用所述新线程执行所述任务队列中等待执行的任务。
如果当前的任务队列中有任务在等待执行,则可利用成为空闲线程的新线程执行任务队列中的等待执行的任务。
本实施例,在利用所述新线程对当前任务执行完毕后,判断当前的任务队列中是否有任务在等待执行,若当前的任务队列中有任务在等待执行,则利用所述新线程执行所述任务队列中等待执行的任务,这样,在执行当前任务时,不必创建新的线程,从而,减少电子设备系统资源的开销,保证其它任务正常执行。
本申请又一实施例的处理任务的方法,与上述实施例基本相同,不同之处在于,上述实施例的步骤109可替换为如下步骤:
步骤110、若当前的任务队列为空,则判断执行当前任务的线程池中当前的线程数量之和,是否大于执行当前任务的线程池中的线程数量最小值。
当前的任务队列为空,可为当前任务队列中没有等待被执行的任务;执行当前任务的线程池中线程可为工作线程,当前的线程数量可为工作线程的数量。
步骤111、若执行当前任务的线程池中当前的线程数量之和,大于执行当前任务的线程池中的线程数量最小值,则销毁所述新线程。
如执行当前任务的线程池中当前的线程数量之和为30,执行当前任务的线程池中的线程数量最小值为20,则在新线程执行完当前任务后,新线程为空闲线程,将空线程销毁即将新线程销毁,以减少线程池中的线程数量,进一步地节省电子设备系统资源。
本申请又一实施例的处理任务的方法,与上述实施例基本相同,不同之处在于,上述实施例的步骤106和107可替换为如下步骤:
步骤112、若执行当前任务的线程池中当前的线程数量之和已达到执行当前任务的线程池的线程数量最大值,则将当前任务放入任务队列中,以等待执行当前任务的线程池中有空闲线程时再执行。
在一个例子中,任务配置信息,还包括任务标识与任务优先级之间的对应关系;通过任务标识能够得到当前任务的优先级,将当前任务放入任务队列中,具体可为根据当前任务的优先级,将当前任务放入任务队列中,在一个例子中,任务队列可包括多个任务队列,且多个任务队列具有不同的优先级,那么可根据当前任务的优先级,将当前任务放入具有相应优先级的队列中。在执行当前任务的线程池中出现空闲线程时,由空闲线程执行优先级最高的队列中的任务,优先级最高的队列中没有任务在等待执行时,出现空闲线程,则执行优先级次高的队列中的任务,以此类推。
若执行当前任务的线程池中当前的线程数量之和为100,执行当前任务的线程池具有的线程数量最大值为100,则将当前任务放入任务队列中,等待执行当前任务的线程池中的某个线程执行完对应的任务后,由该线程执行当前任务。
图3为本发明一实施例提供的任务处理的装置的结构示意图,如图3所示,本实施例的装置可以包括:第一确定模块11、第二确定模块12、第一判断模块13和第一执行模块14,其中,
第一确定模块11,用于根据任务开始消息,确定当前任务的任务标识;
第二确定模块12,用于根据当前任务的任务标识,以及预先加载的任务配置信息,确定执行当前任务的线程池;所述任务配置信息包括任务标识与线程池之间的对应关系;在所述任务配置信息中,不同的任务标识对应不同的线程池,不同的线程池具有各自的线程数量最大值和线程数量最小值;
第一判断模块13,用于判断执行当前任务的线程池中,是否有空闲线程;
第一执行模块14,用于若有,则利用所述空闲线程执行当前任务。
本实施例的装置,可以用于执行图1所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
本实施例的装置,根据当前任务开始消息,确定当前任务的任务标识,根据当前任务的任务标识以及预先加载的任务配置信息,确定执行当前任务的线程池,其中,任务配置信息包括任务标识与线程池之间的对应关系;在任务配置信息中,不同的任务标识对应不同的线程池,不同的线程池具有各自的线程数量最大值和线程数量最小值,并判断执行当前任务的线程池中,是否有空闲线程,若执行当前任务的线程池中,有空闲线程,则利用所述空闲线程执行当前任务,由于根据当前任务的任务类型以及任务类型与线程池之间的对应关系,确定的执行当前任务的线程池,而每个线程池具有线程数量最大值和线程数量最小值,使得线程池中可能存在空闲线程,当通过判断,确定线程池中有空闲线程时,则利用所述空闲线程执行当前任务,这样,在能够完成多任务并发执行的同时,省去了为执行当前任务创建线程的过程,从而,节省了系统开销,提高执行任务的效率。
作为一可选实施方式,所述装置还包括:第二判断模块、第二判断模块、创建模块和第二执行模块,其中,所述第二判断模块,用于若执行当前任务的线程池中,无空闲线程,则判断执行当前任务的线程池中当前的线程数量之和,是否达到执行当前任务的线程池的线程数量最大值;所述创建模块,用于若执行当前任务的线程池中当前的线程数量之和,未达到执行当前任务的线程池的线程数量最大值,则在执行当前任务的线程池中创建新线程;所述第二执行模块,用于利用所述新线程执行当前任务。
作为一可选实施方式,所述装置还包括:放入模块,用于若执行当前任务的线程池中当前的线程数量之和,已达到执行当前任务的线程池的线程数量最大值,则将当前任务放入任务队列中,以等待执行当前任务的线程池中有空闲线程时再执行。
作为一可选实施方式,所述装置,还包括:第三判断模块和第三执行模块,其中,所述第三判断模块,用于判断当前的任务队列中是否有任务在等待执行;所述第三执行模块,用于若当前的任务队列中有任务在等待执行,则利用所述新线程执行所述任务队列中等待执行的任务。
作为一可选实施方式,所述装置,还包括:第四判断模块和销毁模块,其中,所述第四判断模块,用于若当前的任务队列为空,则判断执行当前任务的线程池中当前的线程数量之和,是否大于执行当前任务的线程池中的线程数量最小值;所述销毁模块,用于若执行当前任务的线程池中当前的线程数量之和,大于执行当前任务的线程池中的线程数量最小值,则销毁所述新线程。
本发明实施例还提供一种电子设备,所述电子设备包含前述任一实施例所述的装置。
图4为本发明电子设备一个实施例的结构示意图,可以实现本发明图1和图2所示实施例的流程,如图4所示,上述电子设备可以包括:壳体41、处理器42、存储器43、电路板44和电源电路45,其中,电路板44安置在壳体41围成的空间内部,处理器42和存储器43设置在电路板44上;电源电路45,用于为上述电子设备的各个电路或器件供电;存储器43用于存储可执行程序代码;处理器42通过读取存储器43中存储的可执行程序代码来运行与可执行程序代码对应的程序,用于执行前述任一实施例所述的任务处理的方法。
处理器42对上述步骤的具体执行过程以及处理器42通过运行可执行程序代码来进一步执行的步骤,可以参见本发明图1所示实施例的描述,在此不再赘述。
该电子设备以多种形式存在,包括但不限于:
(1)移动通信设备:这类设备的特点是具备移动通信功能,并且以提供话音、数据通信为主要目标。这类终端包括:智能手机(例如iPhone)、多媒体手机、功能性手机,以及低端手机等。
(2)超移动个人计算机设备:这类设备属于个人计算机的范畴,有计算和处理功能,一般也具备移动上网特性。这类终端包括:PDA、MID和UMPC设备等,例如iPad。
(3)便携式娱乐设备:这类设备可以显示和播放多媒体内容。该类设备包括:音频、视频播放器(例如iPod),掌上游戏机,电子书,以及智能玩具和便携式车载导航设备。
(4)服务器:提供计算服务的设备,服务器的构成包括处理器、硬盘、内存、系统总线等,服务器和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。
(5)其他具有数据交互功能的电子设备。
本发明的实施例还提供一种可读存储介质,所述可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现本发明任一实施例提供的方法。
本发明的实施例还提供一种应用程序,所述应用程序被执行以实现本发明任一实施例提供的方法。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。
尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
为了描述的方便,描述以上装置是以功能分为各种单元/模块分别描述。当然,在实施本发明时可以把各单元/模块的功能在同一个或多个软件和/或硬件中实现。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (10)
1.一种任务处理方法,其特征在于,包括:
根据当前任务开始消息,确定所述当前任务的任务标识;
根据所述当前任务的任务标识,以及预先加载的任务配置信息,确定执行所述当前任务的线程池;所述任务配置信息包括任务标识与线程池之间的对应关系;在所述任务配置信息中,不同的任务标识对应不同的线程池,不同的线程池具有各自的线程数量最大值和线程数量最小值;
判断执行所述当前任务的线程池中,是否有空闲线程;
若有,则利用所述空闲线程执行所述当前任务。
2.根据权利要求1所述的任务处理方法,其特征在于,还包括:
若执行当前任务的线程池中,无空闲线程,则判断执行所述当前任务的线程池中当前的线程数量之和是否达到执行所述当前任务的线程池的线程数量最大值;
若执行所述当前任务的线程池中当前的线程数量之和未达到执行所述当前任务的线程池的线程数量最大值,则在执行所述当前任务的线程池中创建新线程;
利用所述新线程执行所述当前任务。
3.根据权利要求2所述的任务处理方法,其特征在于,还包括:
若执行当前任务的线程池中当前的线程数量之和已达到执行所述当前任务的线程池的线程数量最大值,则将所述当前任务放入任务队列中,以等待执行所述当前任务的线程池中有空闲线程时再执行。
4.根据权利要求2所述的任务处理方法,其特征在于,在利用所述新线程对所述当前任务执行完毕后,所述方法还包括:
判断当前的任务队列中是否有任务在等待执行;
若当前的任务队列中有任务在等待执行,则利用所述新线程执行所述任务队列中等待执行的任务。
5.根据权利要求4所述的任务处理方法,其特征在于,还包括:
若当前的任务队列为空,则判断执行所述当前任务的线程池中当前的线程数量之和是否大于执行所述当前任务的线程池中的线程数量最小值;
若执行所述当前任务的线程池中当前的线程数量之和大于执行所述当前任务的线程池中的线程数量最小值,则销毁所述新线程。
6.一种任务处理装置,其特征在于,包括:第一确定模块、第二确定模块、第一判断模块和第一执行模块,其中,
所述第一确定模块,用于根据所述当前任务开始消息,确定所述当前任务的任务标识;
所述第二确定模块,用于根据所述当前任务的任务标识,以及预先加载的任务配置信息,确定执行所述当前任务的线程池;所述任务配置信息包括任务标识与线程池之间的对应关系;在所述任务配置信息中,不同的任务标识对应不同的线程池,不同的线程池具有各自的线程数量最大值和线程数量最小值;
所述第一判断模块,用于判断执行所述当前任务的线程池中,是否有空闲线程;
所述第一执行模块,用于若有,则利用所述空闲线程执行所述当前任务。
7.根据权利要求6所述的任务处理装置,其特征在于,还包括:第二判断模块、创建模块和第二执行模块,其中,
所述第二判断模块,用于若执行当前任务的线程池中,无空闲线程,则判断执行当前任务的线程池中当前的线程数量之和是否达到执行所述当前任务的线程池的线程数量最大值;
所述创建模块,用于若执行所述当前任务的线程池中当前的线程数量之和未达到执行所述当前任务的线程池的线程数量最大值,则在执行所述当前任务的线程池中创建新线程;
所述第二执行模块,用于利用所述新线程执行所述当前任务。
8.根据权利要求7所述的任务处理装置,其特征在于,还包括:放入模块,用于若执行当前任务的线程池中当前的线程数量之和已达到执行所述当前任务的线程池的线程数量最大值,则将当前任务放入任务队列中,以等待执行所述当前任务的线程池中有空闲线程时再执行。
9.根据权利要求7所述的任务处理装置,其特征在于,还包括:第三判断模块和第三执行模块,其中,
所述第三判断模块,用于判断当前的任务队列中是否有任务在等待执行;
所述第三执行模块,用于若当前的任务队列中有任务在等待执行,则利用所述新线程执行所述任务队列中等待执行的任务。
10.根据权利要求9所述的任务处理装置,其特征在于,还包括:第四判断模块和销毁模块,其中,
所述第四判断模块,用于若当前的任务队列为空,则判断执行所述当前任务的线程池中当前的线程数量之和是否大于执行所述当前任务的线程池中的线程数量最小值;
所述销毁模块,用于若执行所述当前任务的线程池中当前的线程数量之和大于执行所述当前任务的线程池中的线程数量最小值,则销毁所述新线程。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010601409.4A CN111782293A (zh) | 2020-06-28 | 2020-06-28 | 一种任务处理方法、装置、电子设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010601409.4A CN111782293A (zh) | 2020-06-28 | 2020-06-28 | 一种任务处理方法、装置、电子设备及可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111782293A true CN111782293A (zh) | 2020-10-16 |
Family
ID=72760723
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010601409.4A Pending CN111782293A (zh) | 2020-06-28 | 2020-06-28 | 一种任务处理方法、装置、电子设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111782293A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112433837A (zh) * | 2020-11-24 | 2021-03-02 | 上海浦东发展银行股份有限公司 | 一种基于企业服务总线的异步化资源处理方法及系统 |
CN113220429A (zh) * | 2021-04-26 | 2021-08-06 | 武汉联影医疗科技有限公司 | Java线程池的任务处理方法、装置、设备和介质 |
CN113452554A (zh) * | 2021-06-18 | 2021-09-28 | 上海艾拉比智能科技有限公司 | 一种基于排队机制的在线ota差分做包系统及方法 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8209702B1 (en) * | 2007-09-27 | 2012-06-26 | Emc Corporation | Task execution using multiple pools of processing threads, each pool dedicated to execute different types of sub-tasks |
CN103197968A (zh) * | 2013-03-18 | 2013-07-10 | 焦点科技股份有限公司 | 一种融合同步异步特点的线程池处理方法及系统 |
US20140373020A1 (en) * | 2013-06-13 | 2014-12-18 | Wipro Limited | Methods for managing threads within an application and devices thereof |
CN105159768A (zh) * | 2015-09-09 | 2015-12-16 | 浪潮集团有限公司 | 一种任务管理方法及云数据中心管理平台 |
CN106020954A (zh) * | 2016-05-13 | 2016-10-12 | 深圳市永兴元科技有限公司 | 线程管理方法及装置 |
CN106528065A (zh) * | 2015-09-14 | 2017-03-22 | 阿里巴巴集团控股有限公司 | 一种线程获取方法及设备 |
CN107463439A (zh) * | 2017-08-21 | 2017-12-12 | 山东浪潮通软信息科技有限公司 | 一种线程池实现方法及装置 |
CN107832146A (zh) * | 2017-10-27 | 2018-03-23 | 北京计算机技术及应用研究所 | 高可用集群系统中的线程池任务处理方法 |
CN109753354A (zh) * | 2018-11-26 | 2019-05-14 | 平安科技(深圳)有限公司 | 基于多线程的流媒体任务的处理方法、装置及计算机设备 |
CN109783229A (zh) * | 2018-12-17 | 2019-05-21 | 平安普惠企业管理有限公司 | 线程资源分配的方法及装置 |
-
2020
- 2020-06-28 CN CN202010601409.4A patent/CN111782293A/zh active Pending
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8209702B1 (en) * | 2007-09-27 | 2012-06-26 | Emc Corporation | Task execution using multiple pools of processing threads, each pool dedicated to execute different types of sub-tasks |
CN103197968A (zh) * | 2013-03-18 | 2013-07-10 | 焦点科技股份有限公司 | 一种融合同步异步特点的线程池处理方法及系统 |
US20140373020A1 (en) * | 2013-06-13 | 2014-12-18 | Wipro Limited | Methods for managing threads within an application and devices thereof |
CN105159768A (zh) * | 2015-09-09 | 2015-12-16 | 浪潮集团有限公司 | 一种任务管理方法及云数据中心管理平台 |
CN106528065A (zh) * | 2015-09-14 | 2017-03-22 | 阿里巴巴集团控股有限公司 | 一种线程获取方法及设备 |
CN106020954A (zh) * | 2016-05-13 | 2016-10-12 | 深圳市永兴元科技有限公司 | 线程管理方法及装置 |
CN107463439A (zh) * | 2017-08-21 | 2017-12-12 | 山东浪潮通软信息科技有限公司 | 一种线程池实现方法及装置 |
CN107832146A (zh) * | 2017-10-27 | 2018-03-23 | 北京计算机技术及应用研究所 | 高可用集群系统中的线程池任务处理方法 |
CN109753354A (zh) * | 2018-11-26 | 2019-05-14 | 平安科技(深圳)有限公司 | 基于多线程的流媒体任务的处理方法、装置及计算机设备 |
CN109783229A (zh) * | 2018-12-17 | 2019-05-21 | 平安普惠企业管理有限公司 | 线程资源分配的方法及装置 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112433837A (zh) * | 2020-11-24 | 2021-03-02 | 上海浦东发展银行股份有限公司 | 一种基于企业服务总线的异步化资源处理方法及系统 |
CN113220429A (zh) * | 2021-04-26 | 2021-08-06 | 武汉联影医疗科技有限公司 | Java线程池的任务处理方法、装置、设备和介质 |
CN113452554A (zh) * | 2021-06-18 | 2021-09-28 | 上海艾拉比智能科技有限公司 | 一种基于排队机制的在线ota差分做包系统及方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111782293A (zh) | 一种任务处理方法、装置、电子设备及可读存储介质 | |
CN106201574B (zh) | 一种应用界面的启动方法及装置 | |
KR20080098416A (ko) | 다중 프로세서 애플리케이션 지원을 위한 시스템 및 방법 | |
CN106250182B (zh) | 一种文件处理方法、装置及电子设备 | |
CN105912362B (zh) | 一种加载插件的方法、装置及电子设备 | |
CN111782295B (zh) | 一种应用程序的运行方法、装置、电子设备及存储介质 | |
CN103488536A (zh) | 任务调度方法、装置及操作系统 | |
CN112650541B (zh) | 一种应用程序启动加速方法、系统、设备及存储介质 | |
CN111063350A (zh) | 基于任务栈的语音交互状态机及其实现方法 | |
CN110652728A (zh) | 一种游戏资源管理方法、装置、电子设备及存储介质 | |
CN107450951B (zh) | 应用程序处理方法、装置、存储介质和终端 | |
CN111782294A (zh) | 一种应用程序的运行方法、装置、电子设备及存储介质 | |
CN110633148A (zh) | 一种系统运行的优化方法、装置、电子设备及存储介质 | |
CN107291543B (zh) | 应用程序处理方法、装置、存储介质和终端 | |
CN111857865A (zh) | 一种事件型任务的处理方法、装置、电子设备及存储介质 | |
CN111782362A (zh) | 一种消息任务调度方法、装置及电子设备 | |
CN114281321A (zh) | 一种软件开发快捷编辑方法、装置、电子设备及介质 | |
CN112035804A (zh) | 一种在文档页面中插入水印标识的方法、装置、电子设备及存储介质 | |
CN114356867A (zh) | 一种压缩包文件的打开方法、装置、电子设备及存储介质 | |
CN112036132A (zh) | 一种文档的页眉页脚编辑方法、装置及电子设备 | |
CN113742096B (zh) | 一种事件队列的实现方法及系统 | |
CN111346372A (zh) | 一种基于数据备份的游戏登录加载方法、装置及服务器 | |
CN113885951B (zh) | 线程处理方法及装置、电子设备、计算机可读存储介质 | |
CN115658185B (zh) | 一种云应用快速启动的方法、装置、存储介质及电子设备 | |
CN114281495A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20201016 |
|
RJ01 | Rejection of invention patent application after publication |