CN113687931A - 一种任务处理方法、系统及装置 - Google Patents
一种任务处理方法、系统及装置 Download PDFInfo
- Publication number
- CN113687931A CN113687931A CN202111006769.0A CN202111006769A CN113687931A CN 113687931 A CN113687931 A CN 113687931A CN 202111006769 A CN202111006769 A CN 202111006769A CN 113687931 A CN113687931 A CN 113687931A
- Authority
- CN
- China
- Prior art keywords
- executed
- task
- thread
- threads
- idle
- 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.)
- Withdrawn
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 24
- 238000000034 method Methods 0.000 claims description 31
- 230000006378 damage Effects 0.000 claims description 13
- 238000004590 computer program Methods 0.000 claims description 6
- 238000010586 diagram Methods 0.000 description 4
- 238000011176 pooling Methods 0.000 description 3
- 239000002699 waste material Substances 0.000 description 2
- 230000000694 effects Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
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为本发明提供的一种任务处理装置的结构框图。
具体实施方式
本发明的核心是提供一种任务处理方法、系统及装置,以线程优先的方式,优先使用线程对待执行任务进行处理,在没有空闲线程时,才存储至工作队列中,可以提高对待执行任务处理的实时性。
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参照图1,图1为本发明提供的一种任务处理方法的流程示意图,该方法包括:
S11:接收用户提交的待执行任务;
S12:判断线程池中是否存在空闲线程;
S13:若是,则为待执行任务分配线程,以执行待执行任务;
S14:若否,则将待执行任务存储至工作队列中,直至在线程池中存在空闲线程时,为存储在工作队列中的待执行任务分配线程,以执行待执行任务。
考虑到现有技术中任务处理方式为:基于工作队列优先,此时,对任务处理的实时性较低。
为解决上述技术问题,本申请的设计思路为:在接收到用户发送的待执行任务时,优先为待执行任务分配线程,从而提高任务处理方式的实时性,避免出现待执行任务等待时间过长,从而提高任务执行的实时性。
基于此,本申请在接收到用户提交的待执行任务时,先判断线程池中是否存在空闲线程,在其存在空闲线程时,优先从空闲线程中选择一个线程分配给待执行任务,以对待执行任务进行处理。在线程中不存在空闲线程时,再将待执行任务存储至工作队列中,并将其存储至工作队列之后,若线程池中腾出了空闲线程,则将此空闲线程分配给工作队列中存储的待执行任务,以处理此待执行任务。
其中,本申请中的工作队列的存储空间可以设置为无界,也即是,工作队列中默认可以无限存储待执行任务,此时不会因为工作队列的存储空间有限,导致在工作队列存储满之后,丢弃用户再发送的待执行任务,从而实现高保真的策略。
此外,本申请中的线程池中的线程的个数本申请在此不做特别的限定,具体根据实际情况及用户提前预设的线程数确定。
综上,本申请中的任务处理方法是以线程优先的方式,优先使用线程对待执行任务进行处理,在没有空闲线程时,才存储至工作队列中,可以提高对待执行任务处理的实时性。
在上述实施例的基础上:
作为一种优选的实施例,待执行任务的个数为多个;
将待执行任务存储至工作队列中,包括:
将多个待执行任务按照时间顺序依次存储至工作队列中;
在线程池中存在空闲线程时,为存储在工作队列中的待执行任务分配线程,以执行待执行任务,包括:
在线程池中存在空闲线程时,按照时间顺序为先存储至工作队列中的待执行任务分配线程,以执行待执行任务。
本实施例旨在提供一种待执行任务为多个时的处理方法,具体地,在待执行任务为多个时,将多个待执行任务按照时间顺序依次存储在工作队列中,然后,在线程池中存在空闲线程时,也是为先存储在工作队列中的待执行任务分配线程,从而提高分配线程及任务处理的条理性和规律性。
其中,本实施例中的时间顺序可以但不限于为按照用户提交多个待执行任务的顺序。将多个待执行任务存储至工作队列时,可以是为多个待执行任务设置时间戳,然后在为其分配线程时,按照时间戳为其分配,本申请在此均不做特别的限定。
可见,在待执行任务为多个时,也可以实现为多个待执行任务合理分配线程,以实现对待执行任务的处理,提高处理待执行任务的实时性。
作为一种优选的实施例,将待执行任务存储至工作队列中之前,还包括:
判断线程池中的线程数量是否小于预设的最大线程数;
若是,则创建新线程,并将新线程分配给待执行任务,以执行待执行任务;
若否,则进入将待执行任务存储至工作队列中的步骤。
现有技术中还包括几种线程池对线程的分配方式,以JAVA语言的Executors框架为例,如newCachedThreadPool;该类线程池基于ThreadPoolExecutor实现,为无线程数限制型线程池,该线程池的工作队列大小为0,在待执行任务到达且没有空闲线程时,直接启用新线程执行任务。此种线程池的缺点为:缺少对核心线程和最大线程的限制,在并发量过高时(也即同时需要多个线程同时处理多个待执行任务时),容易引发处理器的资源耗尽。
因此,在用户根据业务创建线程池时,设置几个线程池参数,其中一个线程池参数为最大线程数。最大线程数为本申请中最多可以创建的线程的个数,线程池中可创建的最大线程池数量不超过最大线程数,避免出现资源耗尽的情况。
此时,考虑到有些创建线程的方式可以为在线程池一开始就创建最大线程数的线程个数,还可以为在接收到待执行任务时,才创建一个新线程,直至线程池中线程的个数达到最大线程数。
基于此,本申请在将待执行任务存储至工作队列之前,先判断线程池中的线程个数是否小于最大线程数,若是,则还可以创建新的线程,然后将创建的新线程分配给待执行任务,以处理待执行任务,此时,不用将待执行任务存储至工作队列。若否,则表示线程池中的线程个数已经达到上限,不能在创建新的线程,此时将待执行任务存储在工作队列中。
可见,通过本申请中方式可以避免将待执行任务重复存储至工作队列中,避免了不必要的麻烦。
作为一种优选的实施例,判断线程池中的线程数量是否小于预设的最大线程数之前,还包括:
判断线程池中的线程数量是否小于预设的核心线程数;
若是,则创建新核心线程,并将新核心线程分配给待执行任务,以执行待执行任务;
若否,则进入判断线程池中的线程数量是否小于预设的最大线程数的步骤。
现有技术中还包括几种线程池对线程的分配方式,还以JAVA语言的Executors框架为例,如newFixedThreadPool;该类线程池基于ThreadPoolExecutor实现,为固定线程数量的线程池,该线程池的工作队列大小无限,复用线程。该类线程池的缺点为:缺少对于核心线程与最大线程数的区分,且底层ThreadPoolExecutor又是工作队列优先,无法实现线程优先的池化管理,也就无法应对突发的流量;同时,该线程池创建的线程均为核心线程,在长期没有任务时,核心线程又长期占用系统资源,无法回收。如newScheduledThreadPool;该类线程池基于ThreadPoolExecutor实现,为包装的定时任务场景所使用的线程池。如newSingleThreadExecutor;该类线程池基于ThreadPoolExecutor实现,为单线程线程池。如newWorkStealingPool;该类线程池基于Fork/Join框架所实现,不存在队列、核心线程数、最大线程数等概念,提供并发数控制。上述方案中的处理器无法根据线程类别合理管理内部的资源分布,会降低处理器系统的稳定性。且以上方案均基于队列优先的方式进行实现。在应对长期任务量稳定、但存在突发大流量的场景时(也即突然需要对多个待执行任务进行处理是),不能在最大范围内满足高实时性、流量保真(不丢弃任务)效果的同时,有效的做到线程在可控范围内的自动伸缩。
因此,在创建线程池时设置线程池参数,具体的,线程池的参数包括核心线程数,从而限制核心线程的个数,避免出现资源分配不均匀。
此外,创建核心线程的方式可以为:在接收到待执行任务时,才创建一个新新核心线程,直至线程池中核心线程的个数达到核心线程数时。
此时,本申请在判断线程池中的线程数量是否小于预设的最大线程数之前,先判断线程池中的核心线程个数是否小于核心线程数,若是,则还可以创建新的核心线程,然后将创建的新核心线程分配给待执行任务,以处理待执行任务。若否,则表示线程池中的核心线程的个数已经达到上限,不能再创建新的核心线程,此时再进入判断所述线程池中的线程数量是否小于预设的最大线程数的步骤。
其中,核心线程在创建后不可销毁,即便核心线程中没有待执行任务可以处理,此时核心线程也会不停止的运行,会占用处理器的内存。此外,核心线程数量过多会影响处理器的运行速度,具体的,核心线程数量越多,占用处理器的运行内存越多,处理器的运行速度越慢。因此通常情况下,会设置核心线程的数量相对较少。
可见,本实施例中的方式可以确保创建的核心线程的数量等于核心线程数,且避免重复将待执行任务重复放入工作队列中。
作为一种优选的实施例,接收用户提交的待执行任务之后,还包括:
对待执行任务进行封装,以使封装后的待执行任务携带与自身对应的标签;
为待执行任务分配线程,包括:
基于标签为待执行任务分配线程。
考虑到在软件算法中,待执行任务可能是一段程序,为方便用户对程序的调用,本实施例在接收到用户提交的待执行任务后,对待执行任务进行封装,然后使待执行任务带上对应的标签,从而方便后期对待执行任务的调用。其中,为待执行任务分配线程时,基于封装的标签对待执行任务分配线程。
作为一种优选的实施例,标签包括任务标签和线程引用标签;
基于标签为待执行任务分配线程,包括:
基于任务标签及线程引用标签为待执行任务分配与线程引用标签对应的线程。
其中,标签可以但不限于包括任务标签和线程引用,任务标签是这段程序需要执行的任务的一个标志,线程引用为该待执行任务在执行时需要调用的线程。此时,为待执行任务分配线程时,则是根据任务标签及线程引用标签为此待执行任务分配相适应的线程,以执行上述待执行任务。
此外,为待执行任务封装从而使其带有标签,便于后期用于对待执行任务进行调用或者查看,提高了便捷性。
作为一种优选的实施例,将待执行任务存储至工作队列中,直至在线程池中存在空闲线程时,为存储在工作队列中的待执行任务分配线程,以执行待执行任务之后,还包括:
判断工作队列中存储的待执行任务的个数是否为零;
若待执行任务的个数为零,则判断线程池中是否存在空闲线程;
若存在空闲线程,则销毁空闲线程。
考虑到线程空闲之后,若没有待执行任务需要执行时,会占用处理器的资源。因此,本申请中在工作队列中没有待执行任务时,代表没有待执行任务需要分配线程,此时若线程池中有空闲线程,则可以将空闲线程进行销毁,以避免占用处理器的资源。
其中,由于核心线程在创建后不可销毁,因此,作为一种优选的实施例,本申请中销毁的空闲线程为非核心线程。
可见,通过本实施例中对空闲线程的及时销毁,可以避免空闲线程长时间占用处理器的资源。
作为一种优选的实施例,销毁空闲线程之前,还包括:
判断空闲线程是否达到销毁条件,销毁条件包括空闲线程的最大空闲时间;
若是,则进入销毁空闲线程的步骤。
考虑到若线程一空闲就将其进行销毁,可能会导致频繁的申请和销毁线程,需要消耗的资源较大,带来的消耗也较大。
为解决上述技术问题,本申请中在销毁空闲线程之前,还判断空闲线程是否达到销毁条件,例如,销毁条件包括空闲线程的最大空闲时间,此时,先对应的,若空闲线程一空闲就进行销毁,需要频繁的申请和销毁线程,浪费资源,因此,本申请中在销毁线程之前,判断空闲线程的空闲时间是否达到最大空闲时间,若是,则判定该空闲线程在最大空闲时间内一直没有被使用,从而可以进入销毁空闲线程的这一步骤。
此外,本申请中的销毁条件并不仅限于包括最大空闲时间,也可以是线程故障时,例如,判断空闲线程是否可以正常使用,若否,则判定空闲线程满足销毁条件,也即是,将不能正常使用的空闲线程进行销毁。
当然,并不仅限于上述举例,也可以是其他的实现方式,本申请在此不做特别的限定。
其中,本实施例中的最大空闲时间为用户在创建线程池时的一个预设参数,具体时间的设置根据实际情况而定,本申请在此不做特别的限定。
可见,通过本申请中的方式,可以避免空闲线程长时间占用处理器的资源,且可以避免重复的销毁和创建线程,从而避免造成资源的浪费。
请参照图2,图2为本发明提供的一种任务处理系统的结构框图,该系统包括:
接收单元21,用于接收用户提交的待执行任务;
控制单元22,用于判断线程池中是否存在空闲线程,若是,则为待执行任务分配线程,以执行待执行任务;若否,则将待执行任务存储至工作队列中,直至在线程池中存在空闲线程时,为存储在工作队列中的待执行任务分配线程,以执行待执行任务。
为解决上述技术问题,本申请还提供了一种任务处理系统,对于任务处理系统的介绍请参照上述实施例,本申请在此不再赘述。
请参照图3,图3为本发明提供的一种任务处理装置的结构框图,该装置包括:
存储器31,用于存储计算机程序;
处理器32,用于在执行计算机程序时,实现上述的任务处理方法的步骤。
为解决上述技术问题,本申请还提供了一种任务处理装置,对于任务处理装置的介绍请参照上述实施例,本申请在此不再赘述。
需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其他实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种任务处理方法,其特征在于,包括:
接收用户提交的待执行任务;
判断线程池中是否存在空闲线程;
若是,则为所述待执行任务分配线程,以执行所述待执行任务;
若否,则将所述待执行任务存储至工作队列中,直至在所述线程池中存在所述空闲线程时,为存储在所述工作队列中的待执行任务分配线程,以执行所述待执行任务。
2.如权利要求1所述的任务处理方法,其特征在于,所述待执行任务的个数为多个;
将所述待执行任务存储至工作队列中,包括:
将多个所述待执行任务按照时间顺序依次存储至所述工作队列中;
在所述线程池中存在所述空闲线程时,为存储在所述工作队列中的待执行任务分配线程,以执行所述待执行任务,包括:
在所述线程池中存在所述空闲线程时,按照时间顺序为先存储至所述工作队列中的待执行任务分配线程,以执行所述待执行任务。
3.如权利要求1所述的任务处理方法,其特征在于,将所述待执行任务存储至工作队列中之前,还包括:
判断所述线程池中的线程数量是否小于预设的最大线程数;
若是,则创建新线程,并将所述新线程分配给所述待执行任务,以执行所述待执行任务;
若否,则进入将所述待执行任务存储至工作队列中的步骤。
4.如权利要求3所述的任务处理方法,其特征在于,判断所述线程池中的线程数量是否小于预设的最大线程数之前,还包括:
判断所述线程池中的线程数量是否小于预设的核心线程数;
若是,则创建新核心线程,并将所述新核心线程分配给所述待执行任务,以执行所述待执行任务;
若否,则进入判断所述线程池中的线程数量是否小于预设的最大线程数的步骤。
5.如权利要求1所述的任务处理方法,其特征在于,接收用户提交的待执行任务之后,还包括:
对所述待执行任务进行封装,以使封装后的所述待执行任务携带与自身对应的标签;
为所述待执行任务分配线程,包括:
基于所述标签为所述待执行任务分配所述线程。
6.如权利要求5所述的任务处理方法,其特征在于,所述标签包括任务标签和线程引用标签;
基于所述标签为所述待执行任务分配所述线程,包括:
基于所述任务标签及所述线程引用标签为所述待执行任务分配与所述线程引用标签对应的线程。
7.如权利要求1-6任一项所述的任务处理方法,其特征在于,将所述待执行任务存储至工作队列中,直至在所述线程池中存在所述空闲线程时,为存储在所述工作队列中的待执行任务分配线程,以执行所述待执行任务之后,还包括:
判断所述工作队列中存储的所述待执行任务的个数是否为零;
若所述待执行任务的个数为零,则判断所述线程池中是否存在空闲线程;
若存在所述空闲线程,则销毁所述空闲线程。
8.如权利要求7所述的任务处理方法,其特征在于,销毁所述空闲线程之前,还包括:
判断所述空闲线程是否达到销毁条件,所述销毁条件包括所述空闲线程的最大空闲时间;
若是,则进入销毁所述空闲线程的步骤。
9.一种任务处理系统,其特征在于,包括:
接收单元,用于接收用户提交的待执行任务;
控制单元,用于判断线程池中是否存在空闲线程,若是,则为所述待执行任务分配线程,以执行所述待执行任务;若否,则将所述待执行任务存储至工作队列中,直至在所述线程池中存在所述空闲线程时,为存储在所述工作队列中的待执行任务分配线程,以执行所述待执行任务。
10.一种任务处理装置,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于在执行所述计算机程序时,实现如权利要求1-8任一项所述的任务处理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111006769.0A CN113687931A (zh) | 2021-08-30 | 2021-08-30 | 一种任务处理方法、系统及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111006769.0A CN113687931A (zh) | 2021-08-30 | 2021-08-30 | 一种任务处理方法、系统及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113687931A true CN113687931A (zh) | 2021-11-23 |
Family
ID=78584059
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111006769.0A Withdrawn CN113687931A (zh) | 2021-08-30 | 2021-08-30 | 一种任务处理方法、系统及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113687931A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115601195A (zh) * | 2022-10-17 | 2023-01-13 | 桂林电子科技大学(Cn) | 基于电力用户实时标签的交易双向推荐系统及其方法 |
-
2021
- 2021-08-30 CN CN202111006769.0A patent/CN113687931A/zh not_active Withdrawn
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115601195A (zh) * | 2022-10-17 | 2023-01-13 | 桂林电子科技大学(Cn) | 基于电力用户实时标签的交易双向推荐系统及其方法 |
CN115601195B (zh) * | 2022-10-17 | 2023-09-08 | 桂林电子科技大学 | 基于电力用户实时标签的交易双向推荐系统及其方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110515704B (zh) | 基于Kubernetes系统的资源调度方法及装置 | |
KR101953906B1 (ko) | 태스크 스케줄링 방법 및 장치 | |
CN105760234A (zh) | 一种线程池管理方法及装置 | |
CN109564528B (zh) | 分布式计算中计算资源分配的系统和方法 | |
CN109710416B (zh) | 资源调度方法及装置 | |
CN107818012B (zh) | 一种数据处理方法、装置及电子设备 | |
CN111427675A (zh) | 一种数据处理方法、装置以及计算机可读存储介质 | |
CN110837401A (zh) | 一种java线程池分级处理方法和装置 | |
WO2018196462A1 (zh) | 资源调度装置、资源调度系统和资源调度方法 | |
JP3832341B2 (ja) | メモリプール管理方式 | |
CN115167996A (zh) | 调度方法及装置、芯片、电子设备及存储介质 | |
CN111709723B (zh) | Rpa业务流程智能处理方法、装置、计算机设备和存储介质 | |
CN115237556A (zh) | 调度方法及装置、芯片、电子设备及存储介质 | |
CN113886069A (zh) | 一种资源分配方法、装置、电子设备及存储介质 | |
CN113687931A (zh) | 一种任务处理方法、系统及装置 | |
CN114461385A (zh) | 线程池调度方法、装置、设备以及可读存储介质 | |
US20050262516A1 (en) | Systems and methods for dynamic control of cache and pool sizes | |
CN111124674A (zh) | 一种硬件资源的管理方法、存储介质及终端 | |
CN111597044A (zh) | 任务调度方法、装置、存储介质及电子设备 | |
CN114579323A (zh) | 一种线程处理方法、装置、设备及介质 | |
JP2000056992A (ja) | タスクスケジューリングシステム、方法及び記録媒体 | |
CN109819674B (zh) | 计算机存储介质、嵌入式调度方法及系统 | |
CN113419839A (zh) | 多类型作业的资源调度方法、装置、电子设备及存储介质 | |
US7756910B2 (en) | Systems and methods for cache and pool initialization on demand | |
CN115562840A (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 | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20211123 |
|
WW01 | Invention patent application withdrawn after publication |