CN110046038A - 一种基于线程池的任务处理方法及装置 - Google Patents
一种基于线程池的任务处理方法及装置 Download PDFInfo
- Publication number
- CN110046038A CN110046038A CN201910186771.7A CN201910186771A CN110046038A CN 110046038 A CN110046038 A CN 110046038A CN 201910186771 A CN201910186771 A CN 201910186771A CN 110046038 A CN110046038 A CN 110046038A
- Authority
- CN
- China
- Prior art keywords
- thread
- task
- idle
- pool
- pond
- 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
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
-
- 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
- G06F9/5038—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 considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
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
本申请实施例公开了一种基于线程池的任务处理方法及装置,该方法适用于业务过程优化,该方法包括:接收目标任务,并根据该目标任务的目标任务类型确定该目标任务对应的第一线程池,当检测到该第一线程池中不存在空闲线程且该第一线程池的第一参数为是时,获取该目标任务类型对应的第一处理优先级,获取比该第一处理优先级低的N个处理优先级,并获取该N个处理优先级中各个处理优先级对应的任务类型,得到M个任务类型,获取该M个任务类型对应的M个第二线程池,向该M个第二线程池请求借用空闲线程,并基于该M个第二线程池中借用到的空闲线程处理该目标任务。采用本申请实施例,可以减少任务的等待时长,提高任务的处理效率。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种基于线程池的任务处理方法及装置。
背景技术
目前大部分的任务都是使用线程池的线程来处理,并且一般在配置好线程池之后,很难对线程池的大小进行灵活的调整以及监控。当某个任务需要线程处理时,一旦线程池中没有空闲线程,那么该任务就只能等待线程池中正在处理任务的线程被释放,再利用被释放后的线程处理该任务,这将导致任务等待时间长、处理效率低。
发明内容
本申请实施例提供一种基于线程池的任务处理方法及装置,可以减少任务的等待时长,提高任务的处理效率。
第一方面,本申请实施例提供了一种基于线程池的任务处理方法,该方法包括:
接收目标任务,并根据该目标任务的目标任务类型确定该目标任务对应的第一线程池,该第一线程池中包括至少一个线程;
若检测到该第一线程池中不存在未被占用的空闲线程且该第一线程池的第一参数为是,则获取该目标任务类型对应的第一处理优先级,该第一处理优先级用于表示处理该目标任务类型的任务的优先级,该第一参数用于指示线程池是否允许借用其他线程池中的线程;
获取比该第一处理优先级低的N个处理优先级,并获取该N个处理优先级中各个处理优先级对应的任务类型,得到M个任务类型,其中一个处理优先级对应一个或多个任务类型,该M大于或等于该N;
获取该M个任务类型对应的M个第二线程池,向该M个第二线程池请求借用空闲线程,并基于该M个第二线程池中借用到的空闲线程处理该目标任务。
结合第一方面,在一种可能的实施方式中,若该M大于1;向该M个第二线程池请求借用空闲线程,并基于该M个第二线程池中借用到的空闲线程处理该目标任务,包括:
向该M个第二线程池分别发送线程借用请求,该线程借用请求用于请求借用空闲线程;将该M个第二线程池中针对该线程借用请求首个返回确认借用响应的第二线程池确定为该目标任务的执行线程池;基于该执行线程池中的空闲线程处理该目标任务。其中,该确认借用响应为第二线程池的第二参数为是且存在空闲线程时返回的线程借用响应,该第二参数用于指示线程池中的线程是否允许被其他线程池借用。
结合第一方面,在一种可能的实施方式中,若该M等于1,则该N为1;向该M个第二线程池请求借用空闲线程,并基于该M个第二线程池中借用到的空闲线程处理该目标任务,包括:
向第二线程池发送线程借用请求,该线程借用请求用于请求借用空闲线程;若该第二线程池针对该线程借用请求返回的线程借用响应为确认借用响应,则基于该第二线程池中的空闲线程处理该目标任务。其中,该确认借用响应为该第二线程池的第二参数为是且存在空闲线程时返回的线程借用响应,该第二参数用于指示线程池中的线程是否允许被其他线程池借用。
结合第一方面,在一种可能的实施方式中,该方法还包括:若各个第二线程池返回的线程借用响应均为拒绝借用响应,则将该目标任务顺序存储至任务队列以等待该第一线程池中的空闲线程;当该第一线程池中存在空闲线程时,则基于该第一线程池中的空闲线程处理该目标任务。其中,该拒绝借用响应为第二线程池的第二参数为否或不存在空闲线程时返回的线程借用响应。
结合第一方面,在一种可能的实施方式中,该方法还包括:当该第一线程池的第一参数为否时,将该目标任务顺序存储至任务队列以等待该第一线程池中的空闲线程;当该第一线程池中存在空闲线程时,基于该第一线程池中的空闲线程处理该目标任务。
结合第一方面,在一种可能的实施方式中,在根据该目标任务的目标任务类型确定该目标任务对应的第一线程池之后,该方法还包括:若检测到该第一线程池中存在未被占用的空闲线程,基于该第一线程池中的任一空闲线程处理该目标任务。
第二方面,本申请实施例提供了一种任务处理装置,该装置包括:
接收模块,用于接收目标任务,并根据该目标任务的目标任务类型确定该目标任务对应的第一线程池,该第一线程池中包括至少一个线程;
第一获取模块,用于当检测到该第一线程池中不存在未被占用的空闲线程且该第一线程池的第一参数为是时,获取该目标任务类型对应的第一处理优先级,该第一处理优先级用于表示处理该目标任务类型的任务的优先级,该第一参数用于指示线程池是否允许借用其他线程池中的线程;
第二获取模块,用于获取比该第一处理优先级低的N个处理优先级,并获取该N个处理优先级中各个处理优先级对应的任务类型,得到M个任务类型,其中一个处理优先级对应一个或多个任务类型,该M大于或等于该N;
第三获取模块,用于获取该M个任务类型对应的M个第二线程池;
借用模块,用于向该M个第二线程池请求借用空闲线程,并基于该M个第二线程池中借用到的空闲线程处理该目标任务。
结合第二方面,在一种可能的实施方式中,若该M大于1,上述借用模块具体用于:
向该M个第二线程池分别发送线程借用请求,该线程借用请求用于请求借用空闲线程;将该M个第二线程池中针对该线程借用请求首个返回确认借用响应的第二线程池确定为该目标任务的执行线程池,基于该执行线程池中的空闲线程处理该目标任务。其中,该确认借用响应为第二线程池的第二参数为是且存在空闲线程时返回的线程借用响应,该第二参数用于指示线程池中的线程是否允许被其他线程池借用。
结合第二方面,在一种可能的实施方式中,若该M等于1,则该N为1;上述借用模块具体用于:向第二线程池发送线程借用请求,该线程借用请求用于请求借用空闲线程;若该第二线程池针对该线程借用请求返回的线程借用响应为确认借用响应,则基于该第二线程池中的空闲线程处理该目标任务。其中,该确认借用响应为该第二线程池的第二参数为是且存在空闲线程时返回的线程借用响应,该第二参数用于指示线程池中的线程是否允许被其他线程池借用。
结合第二方面,在一种可能的实施方式中,该装置还包括:存储模块,用于当各个第二线程池返回的线程借用响应均为拒绝借用响应时,将该目标任务顺序存储至任务队列以等待该第一线程池中的空闲线程;处理模块,用于当该第一线程池中存在空闲线程时,基于该第一线程池中的空闲线程处理该目标任务。其中,该拒绝借用响应为第二线程池的第二参数为否或不存在空闲线程时返回的线程借用响应。
结合第二方面,在一种可能的实施方式中,上述存储模块还用于当该第一线程池的第一参数为否时,将该目标任务顺序存储至任务队列以等待该第一线程池中的空闲线程;上述处理模块还用于当该第一线程池中存在空闲线程时,基于该第一线程池中的空闲线程处理该目标任务。
结合第二方面,在一种可能的实施方式中,上述处理模块还用于当检测到该第一线程池中存在未被占用的空闲线程时,基于该第一线程池中的任一空闲线程处理该目标任务。
第三方面,本申请实施例提供了一种终端,包括处理器、输入设备、输出设备和存储器,该处理器、输入设备、输出设备和存储器相互连接,其中,该存储器用于存储支持终端执行上述方法的计算机程序,该计算机程序包括程序指令,该处理器被配置用于调用该程序指令,执行上述第一方面的基于线程池的任务处理方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,该计算机存储介质存储有计算机程序,该计算机程序包括程序指令,该程序指令当被处理器执行时使该处理器执行上述第一方面的基于线程池的任务处理方法。
本申请实施例通过接收目标任务,并根据该目标任务的目标任务类型确定该目标任务对应的第一线程池,当检测到该第一线程池中不存在未被占用的空闲线程且该第一线程池的第一参数为是时,获取该目标任务类型对应的第一处理优先级,该第一处理优先级用于表示处理该目标任务类型的任务的优先级,该第一参数用于指示线程池是否允许借用其他线程池中的线程,获取比该第一处理优先级低的N个处理优先级,并获取该N个处理优先级中各个处理优先级对应的任务类型,得到M个任务类型,获取该M个任务类型对应的M个第二线程池,向该M个第二线程池请求借用空闲线程,并基于该M个第二线程池中借用到的空闲线程处理该目标任务。可以减少任务的等待时长,提高任务的处理效率。
附图说明
为了更清楚地说明本申请实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的基于线程池的任务处理方法的一示意流程图;
图2a是本申请实施例提供的线程池数据库的示意图;
图2b是本申请实施例提供的优先级数据库的示意图;
图3是本申请实施例提供的基于线程池的任务处理方法的另一示意流程图;
图4是本申请实施例提供的任务处理装置的一示意性框图;
图5是本申请实施例提供的终端的一示意性框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
应当理解,本申请的说明书和权利要求书及所述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
还应当理解,在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置展示该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
还应当进一步理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
本申请实施例中的每个线程池中都包括至少一个线程,多个任务可共享线程池里面的线程,线程池中的多个线程可以并发执行。一个线程一次可处理一个任务,当任务处理完毕后会自动释放线程,以便于该线程处理下一个任务。
下面将结合图1至图5,对本申请实施例提供的基于线程池的任务处理方法及装置进行说明。
参见图1,是本申请实施例提供基于线程池的任务处理方法的一示意流程图。如图1所示,该基于线程池的任务处理方法可包括步骤:
S101,接收目标任务,并根据目标任务的目标任务类型确定目标任务对应的第一线程池。
在一些可行的实施方式中,上述目标任务可以为任务系统提交的任一任务。终端可以接收任务系统提交的目标任务,并可以获取该目标任务中携带的任务类型标识。终端可以从任务类型与线程池的关系表中获取该任务类型标识所标识的目标任务类型对应的第一线程池。该第一线程池中可以包括一个或多个线程。其中,终端中可以预先存储任务类型与线程池的关系表,同一线程池中的线程可以用于处理同任务类型的任务。
例如,任务类型标识“type1”标识第一任务类型,第一任务类型对应的线程池为线程池A,说明线程池A中的线程用于处理第一任务类型的任务;任务类型标识“type2”标识第二任务类型,第二任务类型对应的线程池为线程池B,说明线程池B中的线程用于执行第二任务类型的任务;任务类型标识“type3”标识第三任务类型,第三任务类型对应的线程池为线程池C,说明线程池C中的线程用于执行第三任务类型的任务,任务类型标识“type4”标识第四任务类型,第四任务类型对应的线程池为线程池D,说明线程池D中的线程用于执行第四任务类型的任务。其中,“第一任务类型”可用于表示不存在高峰和低谷且对时效性有一定要求的业务中的任务;“第二任务类型”可用于表示存在高峰且对时效性有一定要求的业务中的任务;“第三任务类型”可用于表示对时效性要求不高的业务中的任务;“第四任务类型”可用于表示对时效性要求较高的业务中的任务。一个业务中可包括一个或多个任务。假设目标任务的任务类型标识为“type2”,终端从任务类型与线程池的关系表中获取“type2”所标识的“第二任务类型”对应的线程池B。
S102,若检测到第一线程池中不存在未被占用的空闲线程且第一线程池的第一参数为是,则获取目标任务类型对应的第一处理优先级。
在一些可行的实施方式中,终端可以检测上述第一线程池的至少一个线程中是否存在未被任务占用的空闲线程。当检测到该第一线程池中不存在空闲线程时,说明该第一线程池中的线程全部被占用(即正在处理任务),则终端可以从预设的线程池数据库中获取该第一线程池的第一参数,并可以检测该第一线程池的第一参数为是或否。当检测到该第一线程池的第一参数为是时,终端可以从预设的优先级数据库中获取上述目标任务类型对应的第一处理优先级。其中,该第一处理优先级可以用于表示处理该目标任务类型的任务的优先级。该第一参数可以用于指示线程池是否允许借用其他线程池中的线程,即本线程池是否可借用其他线程池的线程。预设的线程池数据库中可以用于存储与线程池相关的信息,如任务类型与线程池的对应关系,线程池的参数等等。预设的优先级数据库中可以存储与处理优先级相关的信息,如不同任务类型对应的处理优先级、任务类型与线程池之间的对应关系等。
例如,如图2a所示,是本申请实施例提供的线程池数据库的示意图。其中,第一参数可以用于指示本线程池是否可借用其他线程池的线程;第二参数可以用于指示本线程池的线程是否可被其他线程池借用。如图2b所示,是本申请实施例提供的优先级数据库的示意图。其中,处理优先级用V1、V2、V3、V4来表示,V1高于V2,V2高于V3,V3高于V4。第一任务类型对应的处理优先级为V2,第二任务类型对应的处理优先级为V3,第三任务类型对应的处理优先级为V4,第四任务类型对应的处理优先级为V1。假设目标任务的目标任务类型为第一任务类型,则第一线程池为线程池A。假设线程池A中包括a1、a2、a3、a4这4个线程。终端分别检测线程池A中的a1、a2、a3、a4这4个线程是否被占用。若检测到a1、a2、a3、a4这4个线程全部被占用,说明此时线程池A中没有空闲线程,则终端从线程池数据库中获取线程池A的第一参数,检测线程池A的第一参数为是或否。由于线程池A的第一参数为是,说明线程池A可以借用线程池数据库中其他线程池(如线程池B、C、D)的线程,终端从优先级数据库中获取第一任务类型对应的第一处理优先级V2。
S103,获取比第一处理优先级低的N个处理优先级,并获取N个处理优先级中各个处理优先级对应的任务类型,得到M个任务类型。
在一些可行的实施方式中,终端在获取到上述目标任务类型对应的第一处理优先级之后,可以从预设的优先级数据库中获取比该第一处理优先级低的N个处理优先级,并可以从该优先级数据库中获取该N个处理优先级的各个处理优先级对应的任务类型,得到M个任务类型。M可以为大于或等于N的整数,N可以为大于或等于1的整数。其中,预设的优先级数据库中可以包括多个任务类型以及一个或多个处理优先级。每个任务类型可以对应一个处理优先级,一个处理优先级可以对应一个或多个任务类型,如第一任务类型对应的处理优先级为V2,第五任务类型对应的处理优先级也为V2,那么处理优先级V2对应的任务类型就有第一任务类型和第五任务类型。
例如,目标任务的目标任务类型为图2b中的第一任务类型,第一任务类型对应的处理优先级为V2。终端从优先级数据库中获取比处理优先级V2低的处理优先级V3和V4,并从优先级数据库中分别获取处理优先级V3对应的任务类型“第二任务类型”和处理优先级V4对应的任务类型“第三任务类型”。
在一些可行的实施方式中,若M大于1,则N大于或等于1。终端可以获取比上述第一处理优先级低的一个或多个处理优先级,并获取该一个或多个处理优先级中各个处理优先级对应的任务类型,得到多个任务类型。每个任务类型可以对应一个处理优先级,一个处理优先级可以对应一个或多个任务类型。
在一些可行的实施方式中,若M等于1,则N也等于1。终端可以获取比上述第一处理优先级低的处理优先级,并获取该处理优先级对应的任务类型。此时,一个处理优先级可以对应一个任务类型。
S104,获取M个任务类型对应的M个第二线程池,向M个第二线程池请求借用空闲线程,并基于M个第二线程池中借用到的空闲线程处理目标任务。
在一些可行的实施方式中,终端可以从预设的线程池数据库中获取上述M个任务类型对应的M个第二线程池。其中,预设的线程池数据库中可以包括多个任务类型,每个任务类型对应一个线程池,一个线程池中的线程用于处理一个任务类型的任务。若M大于1,则终端可以向上述M个第二线程池分别发送线程借用请求,该线程借用请求用于请求借用第二线程池中的空闲线程。该M个第二线程池中的各个第二线程池在接收到该线程借用请求之后,可以根据该各个第二线程池的第二参数和/或是否存在空闲线程返回线程借用响应。终端可以接收该各个第二线程池针对该线程借用请求返回的线程借用响应,并可以将该各个第二线程池中首个返回确认借用响应的第二线程池确定为上述目标任务的执行线程池。终端可以基于该执行线程池中的空闲线程处理上述目标任务。若各个第二线程池返回的线程借用响应均为拒绝借用响应,则终端可以将上述目标任务顺序存储至任务队列以等待上述第一线程池中的空闲线程。当该第一线程池中存在空闲线程时,终端可以基于该第一线程池中的空闲线程处理该目标任务。其中,该线程借用响应可以为确认借用响应或拒绝借用响应。该确认借用响应可以为第二线程池的第二参数为是且存在空闲线程时返回的线程借用响应;该拒绝借用响应可以为第二线程池的第二参数为否或不存在空闲线程时返回的线程借用响应。该第二参数用于指示线程池中的线程是否允许被其他线程池借用,即本线程池中的线程是否允许被其他线程池借用。本申请实施例通过获取比第一处理优先级低(目标任务的目标任务类型所对应的处理优先级)的各个处理优先级,再获取该各个处理优先级对应的任务类型,向这些任务类型对应的线程池请求借用空闲线程,可以有针对性地发送请求,提高借用到线程的可能性,减少任务的等待时长,提高任务的处理效率。
例如,假设目标任务的目标任务类型为图2b中的第一任务类型,第一任务类型对应的处理优先级为V2。终端从优先级数据库中获取比处理优先级V2低的处理优先级V3和V4,并从优先级数据库中分别获取处理优先级V3对应的任务类型“第二任务类型”和处理优先级V4对应的任务类型“第三任务类型”。终端从预设的线程池数据库中分别获取“第二任务类型”对应的第二线程池(线程池B)以及“第三任务类型”对应的第二线程池(线程池C)。终端分别向线程池B和C发送线程借用请求。线程池B和C在接收到线程借用请求之后,分别检测各自的第二参数为是或否。由于线程池B和C的第二参数均为是,则检测线程池B和C中是否存在空闲线程。当任一线程池中存在任一空闲线程时,返回确认借用响应。假设线程池B和C中均存在空闲线程,线程池C先检测到空闲线程,并先返回确认借用响应。终端就将线程池B和C中首个返回确认借用响应的线程池C确定为目标任务的执行线程池。终端检测执行线程池(即线程池C)中空闲线程的数量,当线程池C中空闲线程的数量大于1时,则线程池C中的所有空闲线程共同竞争,抢夺目标任务。假设线程池C中的空闲线程为c1,c3,c4,若空闲线程c4抢到目标任务,终端基于线程池C中的空闲线程c4处理目标任务。当线程池C中空闲线程的数量等于1时,则基于线程池C中的这个空闲线程处理目标任务。
在一些可行的实施方式中,若M等于1,N也等于1。终端可以向第二线程池发送线程借用请求,该线程借用请求用于请求借用该第二线程池中的空闲线程。该第二线程池在接收到该线程借用请求之后,可以根据该第二线程池的第二参数和/或是否存在空闲线程返回线程借用响应。终端可以接收该第二线程池针对该线程借用请求返回的线程借用响应,并可以检测该线程借用响应为确认借用响应或拒绝借用响应。若检测到该线程借用响应为确认借用响应,则终端可以基于该第二线程池中的空闲线程处理上述目标任务。若检测到该线程借用响应为拒绝借用响应,则终端可以将上述目标任务顺序存储至任务队列以等待上述第一线程池中的空闲线程。当该第一线程池中存在空闲线程时,终端可以基于该第一线程池中的空闲线程处理该目标任务。其中,该确认借用响应可以为第二线程池的第二参数为是且存在空闲线程时返回的线程借用响应;该拒绝借用响应可以为第二线程池的第二参数为否或不存在空闲线程时返回的线程借用响应。该第二参数用于指示线程池中的线程是否允许被其他线程池借用,即本线程池中的线程是否允许被其他线程池借用。
在本申请实施例中,终端通过接收目标任务,并根据该目标任务的目标任务类型确定该目标任务对应的第一线程池,当检测到该第一线程池中不存在未被占用的空闲线程且该第一线程池的第一参数为是时,获取该目标任务类型对应的第一处理优先级,获取比该第一处理优先级低的N个处理优先级,并获取该N个处理优先级中各个处理优先级对应的任务类型,得到M个任务类型,获取该M个任务类型对应的M个第二线程池,向该M个第二线程池请求借用空闲线程,并基于该M个第二线程池中借用到的空闲线程处理该目标任务。可以减少任务的等待时长,提高任务的处理效率。
参见图3,是本申请实施例提供基于线程池的任务处理方法的一示意流程图。如图3所示,该基于线程池的任务处理方法可包括步骤:
S301,接收目标任务,并根据目标任务的目标任务类型确定目标任务对应的第一线程池。
在一些可行的实施方式中,本申请实施例中的步骤S301可参考图1所示实施例的步骤S101的实现方式,在此不再赘述。
S302,检测第一线程池中是否存在未被占用的空闲线程。
S303,若检测到第一线程池中存在未被占用的空闲线程,则基于第一线程池中的任一空闲线程处理目标任务。
在一些可行的实施方式中,终端可以检测上述第一线程池中是否存在未被任务占用的空闲线程。当检测到该第一线程池中存在空闲线程时,说明该第一线程池中存在可用的线程,则终端可以基于该第一线程池中的任一空闲线程处理上述目标任务。
例如,假设第一线程池为图2b中的线程池D,线程池D中包括5个线程,分别为线程d1、线程d2、线程d3、线程d4以及线程d5。终端依次检测线程池D中的5个线程d1、d2、d3、d4以及d5是否被占用。当检测到线程池D中任一线程未被占用时,说明线程池D中存在空闲线程,统计线程池D中空闲线程的数量,当线程池D中空闲线程的数量大于1时,则线程池D中的所有空闲线程共同竞争,抢夺目标任务。假设空闲线程d2抢到目标任务,那么终端就基于线程池D中的空闲线程d2处理目标任务。当线程池D中空闲线程的数量等于1时,则基于线程池D中的这个空闲线程处理目标任务。
S304,若检测到第一线程池中不存在未被占用的空闲线程,则检测第一线程池的第一参数为是或否。
在一些可行的实施方式中,当检测到该第一线程池中不存在空闲线程时,说明该第一线程池中不存在可用的线程,则终端可以从预设的线程池数据库中获取该第一线程池的第一参数,并检测该第一线程池的第一参数为是或否。其中,预设的线程池数据库中可以用于存储与线程池相关的信息,如任务类型与线程池的对应关系,线程池的参数等等。
S305,若检测到第一线程池的第一参数为是,则获取目标任务类型对应的第一处理优先级。
S306,获取比第一处理优先级低的N个处理优先级,并获取N个处理优先级中各个处理优先级对应的任务类型,得到M个任务类型。
S307,获取M个任务类型对应的M个第二线程池,向M个第二线程池请求借用空闲线程,并基于M个第二线程池中借用到的空闲线程处理目标任务。
在一些可行的实施方式中,本申请实施例中的步骤S305-步骤S307可参考图1所示实施例的步骤S102-步骤S104的实现方式,在此不再赘述。
S308,当第一线程池的第一参数为否时,将目标任务顺序存储至任务队列以等待第一线程池中的空闲线程。
S309,当第一线程池中存在空闲线程时,基于第一线程池中的空闲线程处理目标任务。
在一些可行的实施方式中,当检测到上述第一线程池的第一参数为否时,说明该第一线程池不允许借用其他线程池中的线程,则终端可以将上述目标任务顺序存储至任务队列以等待上述第一线程池中的空闲线程。终端可以定时检测该第一线程池中是否存在空闲线程,当该第一线程池中存在空闲线程时,可以基于该第一线程池中的空闲线程处理该目标任务。
在本申请实施例中,终端通过接收目标任务,并根据目标任务的目标任务类型确定目标任务对应的第一线程池,检测第一线程池中是否存在未被占用的空闲线程。当检测到第一线程池中存在未被占用的空闲线程时,基于第一线程池中的任一空闲线程处理目标任务。当检测到第一线程池中不存在未被占用的空闲线程时,检测第一线程池的第一参数为是或否。当检测到第一线程池的第一参数为是时,获取目标任务类型对应的第一处理优先级,获取比第一处理优先级低的N个处理优先级,并获取N个处理优先级中各个处理优先级对应的任务类型,得到M个任务类型,获取M个任务类型对应的M个第二线程池,向M个第二线程池请求借用空闲线程,并基于M个第二线程池中借用到的空闲线程处理目标任务。当第一线程池的第一参数为否时,将目标任务顺序存储至任务队列以等待第一线程池中的空闲线程,当第一线程池中存在空闲线程时,基于第一线程池中的空闲线程处理目标任务。提供了一个更完整的任务处理方案,同时进一步减少了任务的等待时长,提高了任务的处理效率。
参见图4,是本申请实施例提供的任务处理装置的一示意性框图。如图4所示,本申请实施例的任务处理装置包括:
接收模块10,用于接收目标任务,并根据该目标任务的目标任务类型确定该目标任务对应的第一线程池,该第一线程池中包括至少一个线程;
第一获取模块20,用于当检测到该第一线程池中不存在未被占用的空闲线程且该第一线程池的第一参数为是时,获取该目标任务类型对应的第一处理优先级,该第一处理优先级用于表示处理该目标任务类型的任务的优先级,该第一参数用于指示线程池是否允许借用其他线程池中的线程;
第二获取模块30,用于获取比该第一处理优先级低的N个处理优先级,并获取该N个处理优先级中各个处理优先级对应的任务类型,得到M个任务类型,其中一个处理优先级对应一个或多个任务类型,该M大于或等于该N;
第三获取模块40,用于获取该M个任务类型对应的M个第二线程池;
借用模块50,用于向该M个第二线程池请求借用空闲线程,并基于该M个第二线程池中借用到的空闲线程处理该目标任务。
在一些可行的实施方式中,若该M大于1,上述借用模块50具体用于:
向该M个第二线程池分别发送线程借用请求,该线程借用请求用于请求借用空闲线程;将该M个第二线程池中针对该线程借用请求首个返回确认借用响应的第二线程池确定为该目标任务的执行线程池,基于该执行线程池中的空闲线程处理该目标任务。其中,该确认借用响应为第二线程池的第二参数为是且存在空闲线程时返回的线程借用响应,该第二参数用于指示线程池中的线程是否允许被其他线程池借用。
在一些可行的实施方式中,若该M等于1,则该N为1。上述借用模块50具体用于:向第二线程池发送线程借用请求,该线程借用请求用于请求借用空闲线程;若该第二线程池针对该线程借用请求返回的线程借用响应为确认借用响应,则基于该第二线程池中的空闲线程处理该目标任务。其中,该确认借用响应为该第二线程池的第二参数为是且存在空闲线程时返回的线程借用响应,该第二参数用于指示线程池中的线程是否允许被其他线程池借用。
在一些可行的实施方式中,该装置还包括存储模块60以及处理模块70。该存储模块60,用于当各个第二线程池返回的线程借用响应均为拒绝借用响应时,将该目标任务顺序存储至任务队列以等待该第一线程池中的空闲线程;该处理模块70,用于当该第一线程池中存在空闲线程时,基于该第一线程池中的空闲线程处理该目标任务。其中,该拒绝借用响应为第二线程池的第二参数为否或不存在空闲线程时返回的线程借用响应。
在一些可行的实施方式中,上述存储模块60还用于当该第一线程池的第一参数为否时,将该目标任务顺序存储至任务队列以等待该第一线程池中的空闲线程;上述处理模块70还用于当该第一线程池中存在空闲线程时,基于该第一线程池中的空闲线程处理该目标任务。
在一些可行的实施方式中,上述处理模块70还用于当检测到该第一线程池中存在未被占用的空闲线程时,基于该第一线程池中的任一空闲线程处理该目标任务。
具体实现中,上述任务处理装置可通过上述各个模块执行上述图1或图3所提供的实现方式中各个步骤所提供的实现方式,实现上述各实施例中所实现的功能,具体可参见上述图1或图3所示的方法实施例中各个步骤提供的相应描述,在此不再赘述。
在本申请实施例中,任务处理装置通过接收目标任务,并根据该目标任务的目标任务类型确定该目标任务对应的第一线程池,当检测到该第一线程池中不存在未被占用的空闲线程且该第一线程池的第一参数为是时,获取该目标任务类型对应的第一处理优先级,获取比该第一处理优先级低的N个处理优先级,并获取该N个处理优先级中各个处理优先级对应的任务类型,得到M个任务类型,获取该M个任务类型对应的M个第二线程池,向该M个第二线程池请求借用空闲线程,并基于该M个第二线程池中借用到的空闲线程处理该目标任务。可以减少任务的等待时长,提高任务的处理效率。
参见图5,是本申请实施例提供的终端的一示意性框图。如图5所示,本申请实施例中的终端可以包括:一个或多个处理器501;一个或多个输入设备502,一个或多个输出设备503和存储器504。上述处理器501、输入设备502、输出设备503和存储器504通过总线505连接。存储器504用于存储计算机程序,所述计算机程序包括程序指令,处理器501用于执行存储器502存储的程序指令。
其中,上述输入设备502用于接收目标任务。上述处理器501被配置用于调用所述程序指令执行:根据该目标任务的目标任务类型确定该目标任务对应的第一线程池,该第一线程池中包括至少一个线程;若检测到该第一线程池中不存在未被占用的空闲线程且该第一线程池的第一参数为是,则获取该目标任务类型对应的第一处理优先级,该第一处理优先级用于表示处理该目标任务类型的任务的优先级,该第一参数用于指示线程池是否允许借用其他线程池中的线程;获取比该第一处理优先级低的N个处理优先级,并获取该N个处理优先级中各个处理优先级对应的任务类型,得到M个任务类型,其中一个处理优先级对应一个或多个任务类型,该M大于或等于该N;获取该M个任务类型对应的M个第二线程池,向该M个第二线程池请求借用空闲线程,并基于该M个第二线程池中借用到的空闲线程处理该目标任务。
应当理解,在本申请实施例中,所称处理器501可以是中央处理单元(CentralProcessing Unit,CPU),该处理器还可以是其他通用处理器、数字信号处理器(DigitalSignal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
输入设备502可以包括触控板、输入接口、麦克风等,输出设备503可以包括显示器(LCD等)、扬声器、输出接口等。
该存储器504可以包括只读存储器和随机存取存储器,并向处理器501提供指令和数据。存储器504的一部分还可以包括非易失性随机存取存储器。例如,存储器504还可以存储设备类型的信息。
具体实现中,本申请实施例中所描述的处理器501、输入设备502、输出设备503可执行本申请实施例提供的基于线程池的任务处理方法中所描述的实现方式,也可执行本申请实施例所描述的任务处理装置的实现方式,在此不再赘述。
本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序包括程序指令,该程序指令被处理器执行时实现图1或图3所示的基于线程池的任务处理方法,具体细节请参照图1或图3所示实施例的描述,在此不再赘述。
上述计算机可读存储介质可以是前述任一实施例所述的任务处理装置或电子设备的内部存储单元,例如电子设备的硬盘或内存。该计算机可读存储介质也可以是该电子设备的外部存储设备,例如该电子设备上配备的插接式硬盘,智能存储卡(smart mediacard,SMC),安全数字(secure digital,SD)卡,闪存卡(flash card)等。进一步地,该计算机可读存储介质还可以既包括该电子设备的内部存储单元也包括外部存储设备。该计算机可读存储介质用于存储该计算机程序以及该电子设备所需的其他程序和数据。该计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的数据。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请是参照本申请实施例的方法、装置和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程诊疗数据的处理设备的处理器以产生一个机器,使得通过计算机或其他可编程诊疗数据的处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程诊疗数据的处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程诊疗数据的处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管结合具体特征及其实施例对本申请进行了描述,显而易见的,在不脱离本申请的精神和范围的情况下,可对其进行各种修改和组合。相应地,本说明书和附图仅仅是所附权利要求所界定的本申请的示例性说明,且视为已覆盖本申请范围内的任意和所有修改、变化、组合或等同物。显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (10)
1.一种基于线程池的任务处理方法,其特征在于,包括:
接收目标任务,并根据所述目标任务的目标任务类型确定所述目标任务对应的第一线程池,所述第一线程池中包括至少一个线程;
若检测到所述第一线程池中不存在未被占用的空闲线程且所述第一线程池的第一参数为是,则获取所述目标任务类型对应的第一处理优先级,所述第一处理优先级用于表示处理所述目标任务类型的任务的优先级,所述第一参数用于指示线程池是否允许借用其他线程池中的线程;
获取比所述第一处理优先级低的N个处理优先级,并获取所述N个处理优先级中各个处理优先级对应的任务类型,得到M个任务类型,其中一个处理优先级对应一个或多个任务类型,所述M大于或等于所述N;
获取所述M个任务类型对应的M个第二线程池,向所述M个第二线程池请求借用空闲线程,并基于所述M个第二线程池中借用到的空闲线程处理所述目标任务。
2.根据权利要求1所述的方法,其特征在于,若所述M大于1,所述向所述M个第二线程池请求借用空闲线程,并基于所述M个第二线程池中借用到的空闲线程处理所述目标任务,包括:
向所述M个第二线程池分别发送线程借用请求,所述线程借用请求用于请求借用空闲线程;
将所述M个第二线程池中针对所述线程借用请求首个返回确认借用响应的第二线程池确定为所述目标任务的执行线程池,所述确认借用响应为第二线程池的第二参数为是且存在空闲线程时返回的线程借用响应,所述第二参数用于指示线程池中的线程是否允许被其他线程池借用;
基于所述执行线程池中的空闲线程处理所述目标任务。
3.根据权利要求1所述的方法,其特征在于,若所述M等于1,则所述N为1;
所述向所述M个第二线程池请求借用空闲线程,并基于所述M个第二线程池中借用到的空闲线程处理所述目标任务,包括:
向第二线程池发送线程借用请求,所述线程借用请求用于请求借用空闲线程;
若所述第二线程池针对所述线程借用请求返回的线程借用响应为确认借用响应,则基于所述第二线程池中的空闲线程处理所述目标任务,所述确认借用响应为所述第二线程池的第二参数为是且存在空闲线程时返回的线程借用响应,所述第二参数用于指示线程池中的线程是否允许被其他线程池借用。
4.根据权利要求2或3所述的方法,其特征在于,所述方法还包括:
若各个第二线程池返回的线程借用响应均为拒绝借用响应,则将所述目标任务顺序存储至任务队列以等待所述第一线程池中的空闲线程,所述拒绝借用响应为第二线程池的第二参数为否或不存在空闲线程时返回的线程借用响应;
当所述第一线程池中存在空闲线程时,基于所述第一线程池中的空闲线程处理所述目标任务。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述方法还包括:
当所述第一线程池的第一参数为否时,将所述目标任务顺序存储至任务队列以等待所述第一线程池中的空闲线程;
当所述第一线程池中存在空闲线程时,基于所述第一线程池中的空闲线程处理所述目标任务。
6.根据权利要求1-5任一项所述的方法,其特征在于,所述在根据所述目标任务的目标任务类型确定所述目标任务对应的第一线程池之后,所述方法还包括:
若检测到所述第一线程池中存在未被占用的空闲线程,则基于所述第一线程池中的任一空闲线程处理所述目标任务。
7.一种任务处理装置,其特征在于,包括:
接收模块,用于接收目标任务,并根据所述目标任务的目标任务类型确定所述目标任务对应的第一线程池,所述第一线程池中包括至少一个线程;
第一获取模块,用于当检测到所述第一线程池中不存在未被占用的空闲线程且所述第一线程池的第一参数为是时,获取所述目标任务类型对应的第一处理优先级,所述第一处理优先级用于表示处理所述目标任务类型的任务的优先级,所述第一参数用于指示线程池是否允许借用其他线程池中的线程;
第二获取模块,用于获取比所述第一处理优先级低的N个处理优先级,并获取所述N个处理优先级中各个处理优先级对应的任务类型,得到M个任务类型,其中一个处理优先级对应一个或多个任务类型,所述M大于或等于所述N;
第三获取模块,用于获取所述M个任务类型对应的M个第二线程池;
借用模块,用于向所述M个第二线程池请求借用空闲线程,并基于所述M个第二线程池中借用到的空闲线程处理所述目标任务。
8.根据权利要求7所述的装置,其特征在于,若所述M大于1,所述借用模块具体用于:
向所述M个第二线程池分别发送线程借用请求,所述线程借用请求用于请求借用空闲线程;
将所述M个第二线程池中针对所述线程借用请求首个返回确认借用响应的第二线程池确定为所述目标任务的执行线程池,所述确认借用响应为第二线程池的第二参数为是且存在空闲线程时返回的线程借用响应,所述第二参数用于指示线程池中的线程是否允许被其他线程池借用;
基于所述执行线程池中的空闲线程处理所述目标任务。
9.一种终端,其特征在于,包括处理器、输入设备、输出设备和存储器,所述处理器、输入设备、输出设备和存储器相互连接,其中,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行如权利要求1-6任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行如权利要求1-6任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910186771.7A CN110046038A (zh) | 2019-03-12 | 2019-03-12 | 一种基于线程池的任务处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910186771.7A CN110046038A (zh) | 2019-03-12 | 2019-03-12 | 一种基于线程池的任务处理方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110046038A true CN110046038A (zh) | 2019-07-23 |
Family
ID=67274789
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910186771.7A Pending CN110046038A (zh) | 2019-03-12 | 2019-03-12 | 一种基于线程池的任务处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110046038A (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110515715A (zh) * | 2019-08-22 | 2019-11-29 | 北京宝兰德软件股份有限公司 | 基于线程池的任务处理方法及装置 |
CN110515710A (zh) * | 2019-08-06 | 2019-11-29 | 深圳市随手科技有限公司 | 异步任务调度方法、装置、计算机设备和存储介质 |
CN111552546A (zh) * | 2020-04-16 | 2020-08-18 | 贝壳技术有限公司 | 一种基于多线程的任务实现方法、装置及存储介质 |
CN111782295A (zh) * | 2020-06-29 | 2020-10-16 | 珠海豹趣科技有限公司 | 一种应用程序的运行方法、装置、电子设备及存储介质 |
CN111831432A (zh) * | 2020-07-01 | 2020-10-27 | Oppo广东移动通信有限公司 | Io请求的调度方法、装置、存储介质及电子设备 |
CN112099945A (zh) * | 2020-08-20 | 2020-12-18 | 深圳市元征科技股份有限公司 | 一种任务处理方法、任务处理装置及电子设备 |
CN112217990A (zh) * | 2020-09-27 | 2021-01-12 | 北京小米移动软件有限公司 | 任务调度方法、任务调度装置及存储介质 |
WO2021017304A1 (zh) * | 2019-07-29 | 2021-02-04 | 平安科技(深圳)有限公司 | 基于共享对象池的调度方法、系统、电子设备及计算机可读存储介质 |
WO2021238153A1 (zh) * | 2020-05-28 | 2021-12-02 | 苏州大学 | 一种嵌入式实时操作的线程时间管理方法及装置 |
CN117311947A (zh) * | 2023-11-24 | 2023-12-29 | 江西云眼视界科技股份有限公司 | 一种线程池管理方法及系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105159768A (zh) * | 2015-09-09 | 2015-12-16 | 浪潮集团有限公司 | 一种任务管理方法及云数据中心管理平台 |
CN106155803A (zh) * | 2015-04-07 | 2016-11-23 | 北大方正集团有限公司 | 一种基于信号量的线程池共享方法及系统 |
CN106899649A (zh) * | 2016-06-30 | 2017-06-27 | 阿里巴巴集团控股有限公司 | 一种任务请求处理方法、装置和用户设备 |
CN107391243A (zh) * | 2017-06-30 | 2017-11-24 | 广东神马搜索科技有限公司 | 线程任务处理设备、装置及方法 |
CN107577523A (zh) * | 2017-07-31 | 2018-01-12 | 阿里巴巴集团控股有限公司 | 一种任务执行的方法及装置 |
CN108846632A (zh) * | 2018-05-28 | 2018-11-20 | 浙江口碑网络技术有限公司 | 线程处理方法及装置 |
-
2019
- 2019-03-12 CN CN201910186771.7A patent/CN110046038A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106155803A (zh) * | 2015-04-07 | 2016-11-23 | 北大方正集团有限公司 | 一种基于信号量的线程池共享方法及系统 |
CN105159768A (zh) * | 2015-09-09 | 2015-12-16 | 浪潮集团有限公司 | 一种任务管理方法及云数据中心管理平台 |
CN106899649A (zh) * | 2016-06-30 | 2017-06-27 | 阿里巴巴集团控股有限公司 | 一种任务请求处理方法、装置和用户设备 |
CN107391243A (zh) * | 2017-06-30 | 2017-11-24 | 广东神马搜索科技有限公司 | 线程任务处理设备、装置及方法 |
CN107577523A (zh) * | 2017-07-31 | 2018-01-12 | 阿里巴巴集团控股有限公司 | 一种任务执行的方法及装置 |
CN108846632A (zh) * | 2018-05-28 | 2018-11-20 | 浙江口碑网络技术有限公司 | 线程处理方法及装置 |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021017304A1 (zh) * | 2019-07-29 | 2021-02-04 | 平安科技(深圳)有限公司 | 基于共享对象池的调度方法、系统、电子设备及计算机可读存储介质 |
CN110515710A (zh) * | 2019-08-06 | 2019-11-29 | 深圳市随手科技有限公司 | 异步任务调度方法、装置、计算机设备和存储介质 |
CN110515715A (zh) * | 2019-08-22 | 2019-11-29 | 北京宝兰德软件股份有限公司 | 基于线程池的任务处理方法及装置 |
CN111552546A (zh) * | 2020-04-16 | 2020-08-18 | 贝壳技术有限公司 | 一种基于多线程的任务实现方法、装置及存储介质 |
WO2021238153A1 (zh) * | 2020-05-28 | 2021-12-02 | 苏州大学 | 一种嵌入式实时操作的线程时间管理方法及装置 |
CN111782295A (zh) * | 2020-06-29 | 2020-10-16 | 珠海豹趣科技有限公司 | 一种应用程序的运行方法、装置、电子设备及存储介质 |
CN111782295B (zh) * | 2020-06-29 | 2023-08-29 | 珠海豹趣科技有限公司 | 一种应用程序的运行方法、装置、电子设备及存储介质 |
CN111831432B (zh) * | 2020-07-01 | 2023-06-16 | Oppo广东移动通信有限公司 | Io请求的调度方法、装置、存储介质及电子设备 |
CN111831432A (zh) * | 2020-07-01 | 2020-10-27 | Oppo广东移动通信有限公司 | Io请求的调度方法、装置、存储介质及电子设备 |
CN112099945A (zh) * | 2020-08-20 | 2020-12-18 | 深圳市元征科技股份有限公司 | 一种任务处理方法、任务处理装置及电子设备 |
CN112217990A (zh) * | 2020-09-27 | 2021-01-12 | 北京小米移动软件有限公司 | 任务调度方法、任务调度装置及存储介质 |
CN112217990B (zh) * | 2020-09-27 | 2024-04-09 | 北京小米移动软件有限公司 | 任务调度方法、任务调度装置及存储介质 |
CN117311947A (zh) * | 2023-11-24 | 2023-12-29 | 江西云眼视界科技股份有限公司 | 一种线程池管理方法及系统 |
CN117311947B (zh) * | 2023-11-24 | 2024-02-09 | 江西云眼视界科技股份有限公司 | 一种线程池管理方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110046038A (zh) | 一种基于线程池的任务处理方法及装置 | |
CN109992414A (zh) | 一种基于线程池的任务处理方法及装置 | |
CN109857551B (zh) | 基于云计算的服务资源的调度方法及装置、电子设备 | |
US20060160396A1 (en) | Methods, systems and computer program products for notifying telecommunications system technicians of pending work orders | |
CN109558255A (zh) | 一种任务处理的方法及任务处理装置 | |
CN110162388A (zh) | 一种任务调度方法、系统及终端设备 | |
CN102779075A (zh) | 一种在多处理器核系统中进行调度的方法、装置及系统 | |
CN109656782A (zh) | 可视化调度监控方法、装置及服务器 | |
CN106502767B (zh) | 一种进程管理方法及其装置 | |
CN102541661B (zh) | 实现等待地址同步接口的方法和设备 | |
CN108132835A (zh) | 基于多进程的任务请求处理方法、装置和系统 | |
CN110163473A (zh) | 一种任务进度的监控方法及设备 | |
CN109533756A (zh) | 一种基板的仓储方法、装置及仓储控制系统 | |
CN107783833A (zh) | 一种终端后台应用程序的管理方法及装置 | |
CN109152061A (zh) | 通道调配方法、装置、服务器及存储介质 | |
CN102025753B (zh) | 一种服务器数据资源负载均衡处理方法及设备 | |
CN107948084B (zh) | 一种限流方法和装置 | |
CN108683528A (zh) | 一种数据传输方法、中心服务器、服务器及数据传输系统 | |
CN109684091B (zh) | 一种任务处理方法及装置 | |
CN109561134B (zh) | 电子装置、分布式集群服务分配方法及存储介质 | |
CN107193753A (zh) | 内存重整方法、装置、电子设备及可读存储介质 | |
CN107396445A (zh) | 一种信息上报调度方法、系统、主机设备及从机设备 | |
CN110471747A (zh) | 一种dma多通道的调度使用方法、装置及终端设备 | |
CN110297708A (zh) | 一种出票处理及调度的方法、服务器及出票平台 | |
CN111813541B (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 |