CN110888742A - 线程管理方法、装置及系统 - Google Patents
线程管理方法、装置及系统 Download PDFInfo
- Publication number
- CN110888742A CN110888742A CN201911188263.9A CN201911188263A CN110888742A CN 110888742 A CN110888742 A CN 110888742A CN 201911188263 A CN201911188263 A CN 201911188263A CN 110888742 A CN110888742 A CN 110888742A
- Authority
- CN
- China
- Prior art keywords
- task
- thread
- thread pool
- threads
- pool
- 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
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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
-
- 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/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5011—Pool
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5018—Thread allocation
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
技术领域
本公开涉及计算机技术,尤其涉及一种线程管理方法、装置和系统。
背景技术
大部分应用在运行过程中都会有多线程的需求,用于处理各种各样的任务,以达到提升执行效率、快速响应用户等目的。这些线程通常会放到一个线程池中进行管理,需要执行一个任务时,即从线程池取一个线程执行任务,执行完毕将线程释放回线程池,以便下次重用。进一步的,应用通常会创建多个线程池,每个线程池用于处理某种类型的任务(比如cpu密集型任务,io密集型任务等),每个线程池的最大线程数、常活线程数等参数会有不同的设置。多线程池能够提升任务执行的并发度,限制每种类型任务最多可占用的资源,并通过不同参数设置为不同类型任务设置不同优先级等。
如图1所示,应用维护的每个线程池都按照自身参数维护若干线程,这些线程池之间是相互隔离的。在一个线程池不断创建新的线程执行新的任务(直到达到其线程数量上限或没有上限)的同时,另一个线程池可能有很多空闲线程,一直在等待执行任务。
这种线程管理方式导致了线程不能充分复用,浪费系统资源。并且创建线程也需要耗费时间,从而拖慢了任务的执行速度。
综上,多个相互独立线程池分担不同类型任务的管理方式任务执行效率低下、系统资源利用不合理。
发明内容
为克服相关技术中存在的问题,本公开提供一种线程管理方法、装置和系统。
根据本公开实施例的第一方面,提供一种线程管理方法,包括:
接收新分配至本任务线程池的任务;
向公用线程池申请任务线程用于执行所述任务;
将所述公用线程池分配的任务线程加入本任务线程池,使用所述任务线程执行所述任务。
优选的,所述向公用线程池申请任务线程用于执行所述任务的步骤之前,还包括:
检测本任务线程池中忙线程数量;
在所述忙线程数量达到本任务线程池的忙线程数量上限的情况下,将所述任务加入本任务线程池的任务队列等待执行,
在所述忙线程数量未达到本任务线程池的忙线程数量上限的情况下,启动向所述公用线程池申请所述任务线程的流程。
优选的,所述将所述公用线程池分配的任务线程加入本任务线程池,使用所述任务线程执行所述任务的步骤之后,还包括:
在所述任务执行完毕后,检测本任务线程池的所述任务队列中是否包含未执行的任务;
在所述任务队列中包含未执行的任务的情况下,自所述任务队列中取出所述任务,使用所述任务线程执行所述任务。
优选的,所述在所述任务执行完毕后,检测本任务线程池的所述任务队列中是否包含未执行的任务的步骤之后,还包括:
在所述任务队列中没有未执行的任务的情况下,将所述任务线程释放回所述公用线程池。
优选的,所述任务线程包括快应用线程和/或所述本任务线程池包括快应用线程和/或所述公用线程池包括快应用线程。
根据本公开的第二方面,提供了一种线程管理装置,包括:
任务接收模块,用于接收新分配至本任务线程池的任务;
线程申请模块,用于向公用线程池申请任务线程用于执行所述任务;
任务执行模块,用于将所述公用线程池分配的任务线程加入本任务线程池,使用所述任务线程执行所述任务。
优选的,该装置还包括:
线程数量检测模块,用于检测本任务线程池中忙线程数量;
待执行任务管理模块,用于在所述忙线程数量达到本任务线程池的忙线程数量上限的情况下,将所述任务加入本任务线程池的任务队列等待执行,
在所述忙线程数量未达到本任务线程池的忙线程数量上限的情况下,启动向所述公用线程池申请所述任务线程的流程。
优选的,该装置还包括:
未执行任务检测模块,用于在所述任务执行完毕后,检测本任务线程池的所述任务队列中是否包含未执行的任务;
线程重复利用模块,用于在所述任务队列中包含未执行的任务的情况下,自所述任务队列中取出所述任务,使用所述任务线程执行所述任务。
优选的,该装置还包括:
线程释放模块,用于在所述任务队列中没有未执行的任务的情况下,将所述任务线程释放回所述公用线程池。
根据本公开的第三方面,提供了一种线程管理系统,包括应用任务分配系统、公用线程池和至少一个任务线程池,所述公用线程池包括全部闲线程,所述任务线程池仅包括忙线程;
所述任务线程池,用于接收所述应用任务分配系统新分配至本任务线程池的任务,向所述公用线程池申请任务线程用于执行所述任务,并将所述公用线程池分配的任务线程加入本任务线程池,使用所述任务线程执行所述任务。
优选的,所述任务线程池,还用于检测本任务线程池中忙线程数量,在所述忙线程数量达到本任务线程池的忙线程数量上限的情况下,将所述任务加入本任务线程池的任务队列等待执行,或在所述忙线程数量未达到本任务线程池的忙线程数量上限的情况下,启动向所述公用线程池申请所述任务线程的流程。
优选的,所述任务线程池,还用于在所述任务执行完毕后,检测本任务线程池的所述任务队列中是否包含未执行的任务,在所述任务队列中包含未执行的任务的情况下,自所述任务队列中取出所述任务,使用所述任务线程执行所述任务,或,
在所述任务队列中没有未执行的任务的情况下,将所述任务线程释放回所述公用线程池。
根据本公开的第四方面,提供了一种计算机装置,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:
接收新分配至本任务线程池的任务;
向公用线程池申请任务线程用于执行所述任务;
将所述公用线程池分配的任务线程加入本任务线程池,使用所述任务线程执行所述任务。
根据本公开的第五方面,提供了一种非临时性计算机可读存储介质,当所述存储介质中的指令由移动终端的处理器执行时,使得移动终端能够执行一种线程管理方法,所述方法包括:
接收新分配至本任务线程池的任务;
向公用线程池申请任务线程用于执行所述任务;
将所述公用线程池分配的任务线程加入本任务线程池,使用所述任务线程执行所述任务。
本公开的实施例提供的技术方案可以包括以下有益效果:由公用线程池管理全部的闲线程,任务线程池在接收到新分配至本任务线程池的任务后,向公用线程池申请任务线程用于执行所述任务,并将所述公用线程池分配的任务线程加入本任务线程池,使用所述任务线程执行所述任务。在使用完成后,释放任务线程回到所述公用线程池,以供后续其他任务线程池申请使用。解决了多个相互独立线程池分担不同类型任务的管理方式任务执行效率低下、系统资源利用不合理的问题,实现了基于高复用度任务线程的高执行效率、低资源消耗的线程管理方案。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
图1是线程池间相互独立各自维护忙闲线程的系统的架构图;
图2是根据一示例性实施例示出的一种线程管理系统的架构图;
图3是根据一示例性实施例示出的一种线程管理方法的流程图。
图4是根据一示例性实施例示出的一种线程管理方法的流程图。
图5是根据一示例性实施例示出的一种线程管理装置的框图。
图6是根据一示例性实施例示出的一种线程管理装置的框图。
图7是根据一示例性实施例示出的一种线程管理装置的框图。
图8是根据一示例性实施例示出的一种线程管理装置的框图。
图9是根据一示例性实施例示出的一种装置的框图(服务器的一般结构)。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
应用维护的每个线程池都按照自身参数维护若干线程,这些线程池之间是相互隔离的。在一个线程池不断创建新的线程执行新的任务(直到达到其线程数量上限或没有上限)的同时,另一个线程池可能有很多空闲线程,一直在等待执行任务。
多个相互独立线程池分担不同类型任务的管理方式任务执行效率低下、系统资源利用不合理。
为了解决上述问题,本公开的实施例提供了一种线程管理方法、装置和系统。通过一公用线程池维护空闲的线程,各个处理具体任务的线程池在需要添加新的线程时向该公用线程池申请,实现了高效、低资源消耗的线程管理方案,解决了多个相互独立线程池分担不同类型任务的管理方式任务执行效率低下、系统资源利用不合理的问题。
本公开的一示例性实施例提供了一种线程管理系统,该系统架构如图2所示,包括:
应用任务分配系统201、公用线程池202和至少一个任务线程池203,所述公用线程池202包括全部的闲线程,所述任务线程池203仅包括忙线程;
所述任务线程池203,用于接收所述应用任务分配系统201新分配至本任务线程池的任务,向所述公用线程池202申请任务线程用于执行所述任务,并将所述公用线程池202分配的任务线程加入本任务线程池,使用所述任务线程执行所述任务。
本公开实施例中采用一个公用线程池维护闲线程集合,作为API提供给应用使用的若干个任务线程池则只维护正在执行任务的线程(忙线程)集合。通过公用线程池对闲线程统一管理,打通了各个任务线程池,让各个任务线程池可以共享线程,提高线程使用率。
各任务线程池203之间相互隔离独立,每个任务线程池203用于处理一类或若干类的任务,例如计算线程池(Computation ThreadPool)、输出/输出线程池(I/O ThreadPool)单线程池(Single ThreadPool)、其他线程池等。在任务线程池203中,只存在正在运行任务的繁忙的线程(即忙线程)。在公用线程池202中,只存在空闲的任务线程(即闲线程)。
优选的,所述任务线程池203,还用于检测本任务线程池中忙线程数量,在所述忙线程数量达到本任务线程池的忙线程数量上限的情况下,将所述任务加入本任务线程池的任务队列等待执行,或在所述忙线程数量未达到本任务线程池的忙线程数量上限的情况下,启动向所述公用线程池申请所述任务线程的流程。
优选的,所述任务线程池203,还用于在所述任务执行完毕后,检测本任务线程池的所述任务队列中是否包含未执行的任务,在所述任务队列中包含未执行的任务的情况下,自所述任务队列中取出所述任务,使用所述任务线程执行所述任务,或,
在所述任务队列中没有未执行的任务的情况下,将所述任务线程释放回所述公用线程池102。
本公开的一示例性实施例还提供了一种线程管理方法,使用该方法完成自公用线程池申请任务线程的流程如图3所示,包括:
步骤301、接收新分配至本任务线程池的任务。
本公开实施例中,采用一公用线程池维护闲线程集合,提供给各任务线程池使用。
本步骤中,应用新分派一个任务到访任务所属类别的指定任务线程池,该任务线程池接收所述新分配的任务。
步骤302、向公用线程池申请任务线程用于执行所述任务。
本步骤中,接收到新分配任务的任务线程池,向公用线程池申请空闲的任务线程,以执行任务。
步骤303、将所述公用线程池分配的任务线程加入本任务线程池,使用所述任务线程执行所述任务。
本步骤中,任务线程池使用分配给本任务线程池的任务线程,执行新分配的任务。
本公开的一示例性实施例还提供了一种线程管理方法,任务线程池还维护有一任务队列,在任务线程池的忙线程数量达到该任务线程池的忙线程上限的情况下,可将新分配的任务加入任务队列等待执行,具体流程如图4所示,包括:
步骤401、接收新分配至本任务线程池的任务。
步骤402、检测本任务线程池中忙线程数量。
本步骤中,在接收到新分配的任务后,检测本任务线程池中正在执行任务的忙线程数量,在忙线程数量已经达到本任务线程池的忙线程数量上限的情况下,表明本任务线程池的计算能力饱和使用中,此时无法加入新的忙线程。
步骤403、在所述忙线程数量达到本任务线程池的忙线程数量上限的情况下,将所述任务加入本任务线程池的任务队列等待执行。
相应的,在所述忙线程数量未达到本任务线程池的忙线程数量上限的情况下,启动向所述公用线程池申请所述任务线程的流程,具体如图3所示,在此不再重复说明。
步骤404、在所述任务执行完毕后,检测本任务线程池的所述任务队列中是否包含未执行的任务。
在任务执行完毕后,任务占用的忙线程即成为了空闲的任务线程,可再利用。此时,可检测本任务线程池的任务队列中是否包含未执行的任务,继续使用该任务线程执行,无需将访任务线程释放回公用线程池再重复申请任务线程。
步骤405、在所述任务队列中包含未执行的任务的情况下,自所述任务队列中取出所述任务,使用所述任务线程执行所述任务。
本步骤中,继续使用该任务线程执行任务队列的程度。重复步骤303至步骤304直至任务队列中的全部未执行的任务均被取出。
本公开的一示例性实施例还提供了一种线程管理方法,在忙线程执行任务完毕变为空闲的任务线程,且任务线程池的任务队列中没有未执行的任务的情况下,表明不再需要该任务线程,可将该任务线程释放回所述公用线程池,以供其他需要任务线程的任务线程池申请使用。
本公开的示例性实施例提供的线程管理方法,适用于快应用线程的管理,涉及以下方面中的任一或任意多个:
任务线程包括快应用线程,本任务线程池包括快应用线程,公用线程池包括快应用线程。
即通过本公开的线程管理方法可以对快应用线程进行管理,实现线程共享,提高线程使用效率。
快应用是一种基于手机硬件平台的新型应用形态,无需安装,即点即用,又兼具原生应用体验(如性能、系统整合、交互等)。同时,快应用在诞生之初就在开发规范、能力接入、开发者服务等层面实现了手机厂商间的标准化统一,极大地降低开发者的适配成本。
与传统应用相比,快应用具备如下特点:
随时(Instant):即点即用,用户无需等待;
随地(Everywhere):与手机的使用场景深度整合,入口无处不在(搜索,智能助手,智能推荐,应用市场,浏览器等);
高效(Efficient):准前端的开发方式,效率高。
由于快应用的特殊性,快应用被期待完成更多的任务,实现更多的功能。目前,快应用的功能正在逐步完善中,本公开实施例提供的技术方案就是提供了一种快应用的新功能,利用该新功能实现快应用在不同终端中以合理准确的界面模板进行显示,扩展了快应用的功能,提高了快应用的处理能力以及实用性。
本公开的一示例性实施例还提供了一种线程管理装置,其结构如图5所示,包括:
任务接收模块501,用于接收新分配至本任务线程池的任务;
线程申请模块502,用于向公用线程池申请任务线程用于执行所述任务;
任务执行模块503,用于将所述公用线程池分配的任务线程加入本任务线程池,使用所述任务线程执行所述任务。
优选的,该装置的结构如图6所示,还包括:
线程数量检测模块504,用于检测本任务线程池中忙线程数量;
待执行任务管理模块505,用于在所述忙线程数量达到本任务线程池的忙线程数量上限的情况下,将所述任务加入本任务线程池的任务队列等待执行,
在所述忙线程数量未达到本任务线程池的忙线程数量上限的情况下,启动向所述公用线程池申请所述任务线程的流程。
优选的,该装置的结构如图7所示,还包括:
未执行任务检测模块506,用于在所述任务执行完毕后,检测本任务线程池的所述任务队列中是否包含未执行的任务;
线程重复利用模块507,用于在所述任务队列中包含未执行的任务的情况下,自所述任务队列中取出所述任务,使用所述任务线程执行所述任务。
优选的,该装置的结构如图8所示,还包括:
线程释放模块508,用于在所述任务队列中没有未执行的任务的情况下,将所述任务线程释放回所述公用线程池。
如前述实施例中的描述,该装置可以被配置为管理快应用线程的装置,结合上述装置的各模块,进行快应用线程管理,具体涉及以下方面中的任一或任意多个:
任务线程包括快应用线程,本任务线程池包括快应用线程,公用线程池包括快应用线程。
从而通过本公开涉及的装置可以对快应用线程进行管理,实现线程共享,提高线程使用效率。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。上述装置可集成于服务器等设备中,由该设备实现相应功能。
本公开的一示例性实施例还提供了一种计算机装置,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:
接收新分配至本任务线程池的任务;
向公用线程池申请任务线程用于执行所述任务;
将所述公用线程池分配的任务线程加入本任务线程池,使用所述任务线程执行所述任务。
本公开的一示例性实施例还提供了一种非临时性计算机可读存储介质,当所述存储介质中的指令由移动终端的处理器执行时,使得移动终端能够执行一种线程管理方法,所述方法包括:
接收新分配至本任务线程池的任务;
向公用线程池申请任务线程用于执行所述任务;
将所述公用线程池分配的任务线程加入本任务线程池,使用所述任务线程执行所述任务。
图9是根据一示例性实施例示出的一种用于线程管理的装置900的框图。例如,装置900可以被提供为一服务器。参照图9,装置900包括处理组件922,其进一步包括一个或多个处理器,以及由存储器932所代表的存储器资源,用于存储可由处理组件922的执行的指令,例如应用程序。存储器932中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件922被配置为执行指令,以执行上述方法.
装置900还可以包括一个电源组件926被配置为执行装置900的电源管理,一个有线或无线网络接口950被配置为将装置900连接到网络,和一个输入输出(I/O)接口958。装置900可以操作基于存储在存储器932的操作系统,例如Windows ServerTM,Mac OSXTM,UnixTM,LinuxTM,FreeBSDTM或类似。
本公开的示例性实施例提供了一种线程管理方法、装置和系统,由公用线程池管理全部的闲线程,任务线程池在接收到新分配至本任务线程池的任务后,向公用线程池申请任务线程用于执行所述任务,并将所述公用线程池分配的任务线程加入本任务线程池,使用所述任务线程执行所述任务。在使用完成后,释放任务线程回到所述公用线程池,以供后续其他任务线程池申请使用。解决了多个相互独立线程池分担不同类型任务的管理方式任务执行效率低下、系统资源利用不合理的问题,实现了基于高复用度任务线程的高执行效率、低资源消耗的线程管理方案。
空闲线程统一维护管理,同一个线程可以被所有线程池取用,复用程度大大提高,整个系统维护的线程总量相对较低,且可以达到甚至超过各线程池独立维护忙闲线程方案的效率。
由于不需要各个线程池都维护自己的空闲线程,效果上减少了空闲线程总量,从而减少了系统资源占用。
由于在各个任务线程池之间共享空闲的任务线程,任务线程池取用一个空闲的任务线程时,公用线程池中恰好有空闲的任务线程的可能性提高(而不是要创建一个新线程出来),从而减少了等待线程创建的耗时。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。
Claims (14)
1.一种线程管理方法,其特征在于,包括:
接收新分配至本任务线程池的任务;
向公用线程池申请任务线程用于执行所述任务;
将所述公用线程池分配的任务线程加入本任务线程池,使用所述任务线程执行所述任务。
2.根据权利要求1所述的线程管理方法,其特征在于,所述向公用线程池申请任务线程用于执行所述任务的步骤之前,还包括:
检测本任务线程池中忙线程数量;
在所述忙线程数量达到本任务线程池的忙线程数量上限的情况下,将所述任务加入本任务线程池的任务队列等待执行,
在所述忙线程数量未达到本任务线程池的忙线程数量上限的情况下,启动向所述公用线程池申请所述任务线程的流程。
3.根据权利要求2所述的线程管理方法,其特征在于,所述将所述公用线程池分配的任务线程加入本任务线程池,使用所述任务线程执行所述任务的步骤之后,还包括:
在所述任务执行完毕后,检测本任务线程池的所述任务队列中是否包含未执行的任务;
在所述任务队列中包含未执行的任务的情况下,自所述任务队列中取出所述任务,使用所述任务线程执行所述任务。
4.根据权利要求3所述的线程管理方法,其特征在于,所述在所述任务执行完毕后,检测本任务线程池的所述任务队列中是否包含未执行的任务的步骤之后,还包括:
在所述任务队列中没有未执行的任务的情况下,将所述任务线程释放回所述公用线程池。
5.根据权利要求1所述的线程管理方法,其特征在于,所述任务线程包括快应用线程和/或所述本任务线程池包括快应用线程和/或所述公用线程池包括快应用线程。
6.一种线程管理装置,其特征在于,包括:
任务接收模块,用于接收新分配至本任务线程池的任务;
线程申请模块,用于向公用线程池申请任务线程用于执行所述任务;
任务执行模块,用于将所述公用线程池分配的任务线程加入本任务线程池,使用所述任务线程执行所述任务。
7.根据权利要求6所述的线程管理装置,其特征在于,该装置还包括:
线程数量检测模块,用于检测本任务线程池中忙线程数量;
待执行任务管理模块,用于在所述忙线程数量达到本任务线程池的忙线程数量上限的情况下,将所述任务加入本任务线程池的任务队列等待执行,
在所述忙线程数量未达到本任务线程池的忙线程数量上限的情况下,启动向所述公用线程池申请所述任务线程的流程。
8.根据权利要求7所述的线程管理装置,其特征在于,该装置还包括:
未执行任务检测模块,用于在所述任务执行完毕后,检测本任务线程池的所述任务队列中是否包含未执行的任务;
线程重复利用模块,用于在所述任务队列中包含未执行的任务的情况下,自所述任务队列中取出所述任务,使用所述任务线程执行所述任务。
9.根据权利要求8所述的线程管理装置,其特征在于,该装置还包括:
线程释放模块,用于在所述任务队列中没有未执行的任务的情况下,将所述任务线程释放回所述公用线程池。
10.一种线程管理系统,其特征在于,包括应用任务分配系统、公用线程池和至少一个任务线程池,所述公用线程池包括全部闲线程,所述任务线程池仅包括忙线程;
所述任务线程池,用于接收所述应用任务分配系统新分配至本任务线程池的任务,向所述公用线程池申请任务线程用于执行所述任务,并将所述公用线程池分配的任务线程加入本任务线程池,使用所述任务线程执行所述任务。
11.根据权利要求10所述的线程管理系统,其特征在于,
所述任务线程池,还用于检测本任务线程池中忙线程数量,在所述忙线程数量达到本任务线程池的忙线程数量上限的情况下,将所述任务加入本任务线程池的任务队列等待执行,或在所述忙线程数量未达到本任务线程池的忙线程数量上限的情况下,启动向所述公用线程池申请所述任务线程的流程。
12.根据权利要求11所述的线程管理系统,其特征在于,
所述任务线程池,还用于在所述任务执行完毕后,检测本任务线程池的所述任务队列中是否包含未执行的任务,在所述任务队列中包含未执行的任务的情况下,自所述任务队列中取出所述任务,使用所述任务线程执行所述任务,或,
在所述任务队列中没有未执行的任务的情况下,将所述任务线程释放回所述公用线程池。
13.一种计算机装置,其特征在于,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:
接收新分配至本任务线程池的任务;
向公用线程池申请任务线程用于执行所述任务;
将所述公用线程池分配的任务线程加入本任务线程池,使用所述任务线程执行所述任务。
14.一种非临时性计算机可读存储介质,当所述存储介质中的指令由移动终端的处理器执行时,使得移动终端能够执行一种线程管理方法,所述方法包括:
接收新分配至本任务线程池的任务;
向公用线程池申请任务线程用于执行所述任务;
将所述公用线程池分配的任务线程加入本任务线程池,使用所述任务线程执行所述任务。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911188263.9A CN110888742A (zh) | 2019-11-28 | 2019-11-28 | 线程管理方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911188263.9A CN110888742A (zh) | 2019-11-28 | 2019-11-28 | 线程管理方法、装置及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110888742A true CN110888742A (zh) | 2020-03-17 |
Family
ID=69749138
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911188263.9A Pending CN110888742A (zh) | 2019-11-28 | 2019-11-28 | 线程管理方法、装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110888742A (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105760234A (zh) * | 2016-03-17 | 2016-07-13 | 联动优势科技有限公司 | 一种线程池管理方法及装置 |
CN106095590A (zh) * | 2016-07-21 | 2016-11-09 | 联动优势科技有限公司 | 一种基于线程池的任务分配方法及装置 |
US20160350157A1 (en) * | 2015-05-29 | 2016-12-01 | Red Hat, Inc. | Dynamic thread pool management |
CN109582455A (zh) * | 2018-12-03 | 2019-04-05 | 恒生电子股份有限公司 | 多线程任务处理方法、装置及存储介质 |
CN109992414A (zh) * | 2019-03-12 | 2019-07-09 | 平安普惠企业管理有限公司 | 一种基于线程池的任务处理方法及装置 |
-
2019
- 2019-11-28 CN CN201911188263.9A patent/CN110888742A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160350157A1 (en) * | 2015-05-29 | 2016-12-01 | Red Hat, Inc. | Dynamic thread pool management |
CN105760234A (zh) * | 2016-03-17 | 2016-07-13 | 联动优势科技有限公司 | 一种线程池管理方法及装置 |
CN106095590A (zh) * | 2016-07-21 | 2016-11-09 | 联动优势科技有限公司 | 一种基于线程池的任务分配方法及装置 |
CN109582455A (zh) * | 2018-12-03 | 2019-04-05 | 恒生电子股份有限公司 | 多线程任务处理方法、装置及存储介质 |
CN109992414A (zh) * | 2019-03-12 | 2019-07-09 | 平安普惠企业管理有限公司 | 一种基于线程池的任务处理方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11436050B2 (en) | Method, apparatus and computer program product for resource scheduling | |
CN108897627B (zh) | 针对典型容器的Docker动态调度方法 | |
EP4242843A1 (en) | Graphics card memory management method and apparatus, device, and system | |
CN109766172B (zh) | 一种异步任务调度方法以及装置 | |
CN104598426A (zh) | 用于异构多核处理器系统的任务调度方法 | |
CN106897299B (zh) | 一种数据库访问方法及装置 | |
CN112486642B (zh) | 资源调度方法、装置、电子设备及计算机可读存储介质 | |
US10248321B1 (en) | Simulating multiple lower importance levels by actively feeding processes to a low-memory manager | |
CN112650541B (zh) | 一种应用程序启动加速方法、系统、设备及存储介质 | |
CN109002364A (zh) | 进程间通信的优化方法、电子装置以及可读存储介质 | |
CN106664259B (zh) | 虚拟网络功能扩容的方法和装置 | |
CN111913792B (zh) | 一种业务处理方法和装置 | |
CN111813541B (zh) | 一种任务调度方法、装置、介质和设备 | |
CN112860396A (zh) | 一种基于分布式深度学习的gpu调度方法及系统 | |
CN112596820A (zh) | 一种资源加载方法、装置、设备以及存储介质 | |
CN110096352B (zh) | 进程管理方法、装置及计算机可读存储介质 | |
CN109189581B (zh) | 一种作业调度方法和装置 | |
JP2010218151A (ja) | 仮想計算機管理機構及び仮想計算機システムにおけるcpu時間割り当て制御方法 | |
CN110888742A (zh) | 线程管理方法、装置及系统 | |
CN115114022A (zh) | 对gpu资源进行使用的方法、系统、设备及介质 | |
CN114489978A (zh) | 资源调度方法、装置、设备及存储介质 | |
Du et al. | A combined priority scheduling method for distributed machine learning | |
US20230297154A1 (en) | Power resource management | |
Oh et al. | HybridHadoop: CPU-GPU hybrid scheduling in hadoop | |
CN113515355A (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: 20200317 |
|
RJ01 | Rejection of invention patent application after publication |