CN115562840A - 一种任务处理方法、装置及介质 - Google Patents
一种任务处理方法、装置及介质 Download PDFInfo
- Publication number
- CN115562840A CN115562840A CN202211378823.9A CN202211378823A CN115562840A CN 115562840 A CN115562840 A CN 115562840A CN 202211378823 A CN202211378823 A CN 202211378823A CN 115562840 A CN115562840 A CN 115562840A
- Authority
- CN
- China
- Prior art keywords
- task
- real
- time
- thread
- processing
- 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/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
-
- 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
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所示,该方法包括:
S11:接收待执行任务并确定待执行任务的实时性优先级;
S12:判断待执行任务是否为实时性任务,若是,则进入步骤S13,若否,则进入步骤S14;
S13:采用线程优先策略对实时性任务分配线程处理;
S14:将非实时性任务存储至工作队列中以等待分配线程处理。
具体地,线程池接收用户提交的待执行任务,对应待执行任务的数量可以是一个或者多个,对此不作限定,通过待执行任务以确定待执行任务的实时性优先级,通过实时性优先级的标识以确定何种待执行任务为实时性任务和非实时性任务。可以理解的是,本实施例中的实时性任务是针对于待执行任务中其实时性要求较为严格,对应的非实时性任务并不是没有实时性,而是对应的实时性严格较低。
作为一种实施例,在接收待执行任务之前,还包括:
根据待执行任务确定待执行任务的实时性等级;
当实时性等级为实时性时,将实时性对应的待执行任务嵌入实时性任务标识;
当实时性等级为非实时性时,对待执行任务不作标识以进入接收待执行任务的步骤。
在发送至线程池之前,需要根据生成的待执行任务以确定其实时性等级,当实时性等级为实时性时,对应嵌入实时性任务标识以便于标记该待执行任务,当实时性等级为非实时性时,不作任何标识以区分待执行任务的实时性。
需要说明的是,实时性等级为实时性时,可以根据实时性的严格性继续细分为不同的等级,以便于后续实时处理,根据等级的细化可以安排分配空闲线程的紧急性细分以做到及时处理,在此不做限定,可以根据实际情况设定。
判断待执行任务是否为实时性任务,需要检测待执行任务的请求头中的实时性优先级内是否包含实时性任务标识以确定是否为实时性任务。当待执行任务为实时性任务时,也就是当实时性优先级为实时性任务时,采用线程优先策略分配线程进行处理,当待执行任务为非实时性任务时,也就是当实时性优先级为非实时性任务时,将非实时性任务存储至工作队列中以等待分配线程处理。
作为一种实施例,当实时性优先级为实时性任务时,采用线程优先策略对实时性任务分配线程处理,包括:
判断线程池内是否存在空闲线程;
若存在,则调用空闲线程运行实时性任务;
若不存在,则将实时性任务存储至工作队列的头部以便于查找;
在线程池内创建非核心线程;
轮询工作队列内查找实时性任务以分配非核心线程进行处理。
具体地,判断线程池内是否有空闲线程,如果有,则调用空闲线程的某个线程运行待执行任务。可以理解的是,实时性任务在本实施例中不限定数量,可以是一个,也可以是多个,当为一个时,其存在的空闲线程中选取一个线程即可,当为多个时,由于空闲线程的数量有限,可以根据多个实时性任务的先进后出的顺序优先选取空闲线程。同理,空闲线程的数量可以是一个或者多个,当然,线程池内存在的线程持续执行任务,根据系统的实时性任务执行的频率设置,由于线程会一直占用系统资源,其线程的数量设置不会较多。
若当前线程池内不存在空闲线程,则将实时性任务存储至工作队列的头部,以便于后续轮询过程中,一旦有空闲线程,可以减少查找时间,对应的头部进行查找。当线程全部被占用时可以创建一定数量的非核心线程,当前线程池内存在的被占用的线程为核心线程,其核心线程的数量不变,非核心数量根据任务执行的执行频率设置,故数量每次在创建的过程中可以相同,也可以不同。核心线程为固定线程数,可闲置,但不可销毁。非核心线程数其闲置时的超时时长,若超过该时长,则会被回收。在创建完非核心线程后,轮询工作队列内查找实时性任务以分配给到非核心线程进行处理。
轮询工作队列,可以是轮询线程轮询工作队列内查找工作队列内是否存在实时性任务,若存在,则分配创建的非核心线程。
作为一种实施例,当实时性优先级为非实时性任务时,将非实时性任务存储至工作队列中以等待分配线程处理,包括:
根据预设时间确定工作队列内是否存在实时性任务;
若存在,则分配空闲线程对实时性任务进行处理;
若不存在,则确定工作队列的实际存储空间是否满足预设条件,其中预设条件为实际存储空间超出预设存储空间;
若满足,则根据先进后出顺序对非实时性任务分配线程进行处理;
若不满足,则返回至接收待执行任务并确定待执行任务的实时性优先级的步骤以接收新的待执行任务。
具体地,将非实时性任务存储至工作队列中,在等待分配线程处理时,需要根据预设时间确定工作队列内是否存在实时性任务,如果存在,则分配空闲线程优先对实时性任务进行处理,无论何时,先要优先实时性任务分配线程处理。若该工作队列内不存在实时性任务,判断工作队列的实际存储空间是否满足预设条件,对应地,预设条件为实际存储空间超出预设存储空间。若超出预设存储空间,则说明满足预设条件,由于工作队列的存储空间有限,其工作队列内的存储空间达到某种阈值,需要及时分配线程给到工作队列内的待执行任务以便于后续新的待执行任务接收。
在对非实时性任务分配线程进行处理时,可以根据先进后出的顺序调用线程执行。若不满足,则说明当前的实际存储空间还可以接收新的待执行任务,故需要返回步骤S11中的接收待执行任务并确定待执行任务的实时性优先级,以便于为后续接收的新的待执行任务中的实时性任务进行有限处理,故当前工作队列内的非实时性任务等待处理。
作为一种实施例,当前若非实时性任务在执行处理过程中,其接收到的新的待执行任务中存在实时性任务,故当前执行完后,立即对实时性任务进行处理。
本发明实施例提供的一种任务处理方法,包括接收待执行任务并确定待执行任务的实时性优先级;当实时性优先级为实时性任务时,则采用线程优先策略对实时性任务分配线程处理;当实时性优先级为非实时性任务时,则将非实时性任务存储至工作队列中以等待分配线程处理。该方法通过确定待执行任务的实时性优先级,对于实时性任务的分配线程处理通过线程优先策略,避免现有的仅以工作队列优先的方式处理导致的实时性较低问题,以提高执行处理高实时性任务的效率;对于非实时性任务的处理将其存储至工作队列中以进行后续的线程分配处理,保留了任务队列中处理非实时性任务的稳定和缓冲作用,节省了线程资源。
在上述实施例的基础上,在分配非核心线程处理实时性任务完成之后,还包括:
清除创建的非核心线程。
需要说明的是,线程池能有效的处理多个线程的并发问题,避免大量的线程因为互相强占系统资源导致阻塞现象,能够有效的降低频繁创建和销毁线程对性能所带来的开销。核心线程没有超时机制的,队列大小没有限制。只有非核心线程,最大线程数很大,会为每一个任务添加一个新的线程,存在超时机制,例如空闲的线程超过60S内没有用到的话,就会被回收。本发明实施例中仅是考虑线程优先的原则,其清除创建的非核心线程,可以根据预定时间内,若当前非核心线程作为空闲线程,则将其清除自动销毁。
本发明实施例提供的在分配非核心线程处理实时性任务完成之后,清除创建的非核心线程,节省线程池内的资源占用,使得线程使用更为灵活。
在上述实施例的基础上,由于工作队列需要选择特定的有界队列,由于非核心线程创建达到上限后,即非实时性任务或者执行实时性任务但当前没有空闲线程时,该方法还包括:
根据预定时间确定各线程的使用率以及工作队列的实际存储空间;
当各线程的使用率和/或实际存储空间达到对应的阈值时,则输出告警信息。
具体地,队列是一种特殊的线性表,只允许在两端进行操作,插入或者取出。常见的有界队列为:
1、基于数组实现的阻塞队列(Array Blocking Queue),实现简单,表现稳定,添加和删除使用同一个锁。
2、基于链表实现的阻塞队列(Linked Blocking Queue),添加和删除两把锁分开。
3、不存储元素的阻塞队列(Synchronous Queue),适用于元素数量少的场景,内部使用队列来实现公平性的调度,使用栈来实现非公平的调度,在Java6时替换了原来的锁逻辑。
常见的无界队列:
1、无锁队列(Concurrent Linked Queue),底层使用CAS操作,通常具有较高吞吐量,但是具有读性能的不确定性,弱一致性——不存在如Array List等集合类的并发修改异常,通俗的说就是遍历时修改不会抛异常。
2、支持优先级排序的无界阻塞队列(Priority Blocking Queue)
3、使用优先级队列实现的延迟无界阻塞队列(Delayed Queue),缓存清掉缓存中超时的缓存数据,任务超时处理。
4、由链表结构组成的无界阻塞队列(Linked Transfer Queue)。
本实施例为了保证实时性任务的处理效率,需要根据预定时间确定各线程的使用率以及工作队列的实际存储空间,当各线程的使用率和/或实际存储空间达到对应的阈值时,输出告警信息。
需要说明的是,各线程的使用率和/或实际存储空间达到对应的阈值,其中各线程的使用率对应的阈值为各线程的频繁使用率达到使用率阈值时,输出告警信息。实际存储空间达到对应的阈值可以是上述实施例中的预设存储空间,也可以是其他的预定存储空间,但是两者存在一种关系,其预定存储空间大于或等于预设存储空间,输出告警信息。
当各线程的使用率达到对应阈值和实际存储空间达到对应的阈值,输出告警信息,三种告警信息的输出情况可以相同,也可以不同,在此不做限定,可根据实际情况设定。其阈值时根据用户可承受任务延时程度设置,若对应的阈值设置较大,则延时性较多。
本发明实施例提供的当各线程的使用率和/或实际存储空间达到对应的阈值时,则输出告警信息,提醒工作人员解决单钱任务压力过大的问题。
在上述实施例的基础上,还包括:
当各线程的使用率和/或实际存储空间达到对应的界限阈值时,则拒绝接收新的待执行任务,其中界限阈值为上界限阈值,且大于阈值。
具体地,当各线程的使用率和/或实际存储空间达到对应的界限阈值时,则拒绝接收新的待执行任务,其中界限阈值包括上界限和下界限两种,本发明实施例主要解决任务压力过大的问题,故本实施例的界限阈值指的为上界限阈值,且大于阈值。
需要说明的是,各线程的使用率、实际存储空间对应的阈值不同,其界限阈值也不同,这里仅是统称为界限阈值,需要根据实际情况设定不同的界限阈值具体值。
在达到界限阈值后,启动任务拒绝策略,将新接收到的任务抛弃或者拒绝,作为一种实施例,本发明实施例选择拒绝接收新的待执行任务。等到降到对应的界限阈值以下,接收新的待执行任务。
本发明实施例提供的当各线程的使用率和/或实际存储空间达到对应的界限阈值时,则拒绝接收新的待执行任务,当达到对应的阈值输出警告信息时,工作人员未处理,此时达到对应的界限阈值后,系统启动自动拒绝,避免当前任务压力过大。
作为一种实施例,图2为本发明实施例提供的另一种任务处理方法的流程图,如图2所示,包括:
S21:接收用户下发的任务或者执行任务队列中的任务;
S22:判断是否包含实时性任务标识,若是,则进入步骤S23,若否,则进入步骤S24;
S23:判断线程池内是否存在空闲线程;若是,则进入步骤S25,若否,则进入步骤S26;
S24:判断是否为任务队列的待执行任务,若是,则进入步骤S23,若否,则进入步骤S27;
S25:调用空闲线程执行任务;
S26:判断是否需要创建更多线程,若是,则进入步骤S25;若否,则进入步骤S27;
S27:将待执行任务存储至任务队列中。
对于本发明提供的一种任务处理方法的介绍请参照上述方法实施例,本发明在此不再赘述,其具有上述任务处理方法相同的有益效果。
上述详细描述了任务处理方法对应的各个实施例,在此基础上,本发明还公开与上述装置对应的任务处理装置,图3为本发明实施例提供的一种任务处理装置的结构图。如图3所示,任务处理装置包括:
确定模块11,用于接收待执行任务并确定待执行任务的实时性优先级;
第一处理模块12,用于当实时性优先级为实时性任务时,则采用线程优先策略对实时性任务分配线程处理;
第二处理模块13,用于当实时性优先级为非实时性任务时,则将非实时性任务存储至工作队列中以等待分配线程处理。
由于装置部分的实施例与上述的实施例相互对应,因此装置部分的实施例请参照上述方法部分的实施例描述,在此不再赘述。
本发明实施例提供的一种任务处理装置,包括接收待执行任务并确定待执行任务的实时性优先级;当实时性优先级为实时性任务时,则采用线程优先策略对实时性任务分配线程处理;当实时性优先级为非实时性任务时,则将非实时性任务存储至工作队列中以等待分配线程处理。该装置通过确定待执行任务的实时性优先级,对于实时性任务的分配线程处理通过线程优先策略,避免现有的仅以工作队列优先的方式处理导致的实时性较低问题,以提高执行处理高实时性任务的效率;对于非实时性任务的处理将其存储至工作队列中以进行后续的线程分配处理,保留了任务队列中处理非实时性任务的稳定和缓冲作用,节省了线程资源。
图4为本发明实施例提供的另一种任务处理装置的结构图,如图4所示,该装置包括:
存储器21,用于存储计算机程序;
处理器22,用于执行计算机程序时实现任务处理方法的步骤。
本实施例提供的任务处理装置可以包括但不限于智能手机、平板电脑、笔记本电脑或者台式电脑等。
其中,处理器22可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器22可以采用数字信号处理器(Digital Signal Processor,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable LogicArray,PLA)中的至少一种硬件形式来实现。处理器22也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称中央处理器(CentralProcessing Unit,CPU);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器22可以集成有图像处理器(Graphics Processing Unit,GPU),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器22还可以包括人工智能(Artificial Intelligence,AI)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器21可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器21还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。本实施例中,存储器21至少用于存储以下计算机程序211,其中,该计算机程序被处理器22加载并执行之后,能够实现前述任一实施例公开的任务处理方法的相关步骤。另外,存储器21所存储的资源还可以包括操作系统212和数据213等,存储方式可以是短暂存储或者永久存储。其中,操作系统212可以包括Windows、Unix、Linux等。数据213可以包括但不限于任务处理方法所涉及到的数据等等。
在一些实施例中,任务处理装置还可包括有显示屏23、输入输出接口24、通信接口25、电源26以及通信总线27。
领域技术人员可以理解,图4中示出的结构并不构成对任务处理装置的限定,可以包括比图示更多或更少的组件。
处理器22通过调用存储于存储器21中的指令以实现上述任一实施例所提供的任务处理方法。
本发明实施例提供的一种任务处理装置,包括接收待执行任务并确定待执行任务的实时性优先级;当实时性优先级为实时性任务时,则采用线程优先策略对实时性任务分配线程处理;当实时性优先级为非实时性任务时,则将非实时性任务存储至工作队列中以等待分配线程处理。该装置通过确定待执行任务的实时性优先级,对于实时性任务的分配线程处理通过线程优先策略,避免现有的仅以工作队列优先的方式处理导致的实时性较低问题,以提高执行处理高实时性任务的效率;对于非实时性任务的处理将其存储至工作队列中以进行后续的线程分配处理,保留了任务队列中处理非实时性任务的稳定和缓冲作用,节省了线程资源。
进一步的,本发明还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器22执行时实现如上述任务处理方法的步骤。
可以理解的是,如果上述实施例中的方法以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
对于本发明提供的一种计算机可读存储介质的介绍请参照上述方法实施例,本发明在此不再赘述,其具有上述任务处理方法相同的有益效果。
以上对本发明所提供的一种任务处理方法、任务处理装置及介质进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
Claims (10)
1.一种任务处理方法,其特征在于,包括:
接收待执行任务并确定所述待执行任务的实时性优先级;
当所述实时性优先级为实时性任务时,则采用线程优先策略对所述实时性任务分配线程处理;
当所述实时性优先级为非实时性任务时,则将所述非实时性任务存储至工作队列中以等待分配线程处理。
2.根据权利要求1所述的任务处理方法,其特征在于,在所述接收待执行任务之前,还包括:
根据所述待执行任务确定所述待执行任务的实时性等级;
当所述实时性等级为实时性时,将所述实时性对应的所述待执行任务嵌入实时性任务标识;
当所述实时性等级为非实时性时,对所述待执行任务不作标识以进入所述接收待执行任务的步骤。
3.根据权利要求2所述的任务处理方法,其特征在于,所述采用线程优先策略对所述实时性任务分配线程处理,包括:
判断线程池内是否存在空闲线程;
若存在,则调用所述空闲线程运行所述实时性任务;
若不存在,则将所述实时性任务存储至所述工作队列的头部以便于查找;
在所述线程池内创建非核心线程;
轮询所述工作队列内查找所述实时性任务以分配所述非核心线程进行处理。
4.根据权利要求3所述的任务处理方法,其特征在于,所述将所述非实时性任务存储至工作队列中以等待分配线程处理,包括:
根据预设时间确定所述工作队列内是否存在所述实时性任务;
若存在,则分配所述空闲线程对所述实时性任务进行处理;
若不存在,则确定所述工作队列的实际存储空间是否满足预设条件,其中所述预设条件为所述实际存储空间超出预设存储空间;
若满足,则根据先进后出顺序对所述非实时性任务分配线程进行处理;
若不满足,则返回至所述接收待执行任务并确定所述待执行任务的实时性优先级的步骤以接收新的所述待执行任务。
5.根据权利要求3所述的任务处理方法,其特征在于,在分配所述非核心线程处理所述实时性任务完成之后,还包括:
清除创建的所述非核心线程。
6.根据权利要求1至5任意一项所述的任务处理方法,其特征在于,还包括:
根据预定时间确定各线程的使用率以及所述工作队列的实际存储空间;
当各所述线程的使用率和/或所述实际存储空间达到对应的阈值时,则输出告警信息。
7.根据权利要求6所述的任务处理方法,其特征在于,还包括:
当各所述线程的使用率和/或所述实际存储空间达到对应的界限阈值时,则拒绝接收新的所述待执行任务,其中所述界限阈值为上界限阈值,且大于所述阈值。
8.一种任务处理装置,其特征在于,包括:
确定模块,用于接收待执行任务并确定所述待执行任务的实时性优先级;
第一处理模块,用于当所述实时性优先级为实时性任务时,则采用线程优先策略对所述实时性任务分配线程处理;
第二处理模块,用于当所述实时性优先级为非实时性任务时,则将所述非实时性任务存储至工作队列中以等待分配线程处理。
9.一种任务处理装置,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至7任一项所述的任务处理方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的任务处理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211378823.9A CN115562840A (zh) | 2022-11-04 | 2022-11-04 | 一种任务处理方法、装置及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211378823.9A CN115562840A (zh) | 2022-11-04 | 2022-11-04 | 一种任务处理方法、装置及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115562840A true CN115562840A (zh) | 2023-01-03 |
Family
ID=84767984
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211378823.9A Pending CN115562840A (zh) | 2022-11-04 | 2022-11-04 | 一种任务处理方法、装置及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115562840A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116126545A (zh) * | 2023-04-12 | 2023-05-16 | 江苏曼荼罗软件股份有限公司 | 资源调度的数据抽取方法、系统、存储介质及设备 |
-
2022
- 2022-11-04 CN CN202211378823.9A patent/CN115562840A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116126545A (zh) * | 2023-04-12 | 2023-05-16 | 江苏曼荼罗软件股份有限公司 | 资源调度的数据抽取方法、系统、存储介质及设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108984264B (zh) | 虚拟gpu的实现方法、装置及系统 | |
US10606653B2 (en) | Efficient priority-aware thread scheduling | |
EP2893444B1 (en) | Quota-based resource management | |
US8627325B2 (en) | Scheduling memory usage of a workload | |
CN103631661A (zh) | 一种内存管理方法和装置 | |
US20120179882A1 (en) | Cooperative memory management | |
CN111124643A (zh) | 一种分布式存储中的删除任务调度方法、系统及相关装置 | |
CN111897637B (zh) | 作业调度方法、装置、主机及存储介质 | |
CN111309644B (zh) | 一种内存分配方法、装置和计算机可读存储介质 | |
US20190286582A1 (en) | Method for processing client requests in a cluster system, a method and an apparatus for processing i/o according to the client requests | |
CN115562840A (zh) | 一种任务处理方法、装置及介质 | |
CN111104219A (zh) | 虚拟核心与物理核心的绑定方法、装置、设备及存储介质 | |
CN114579323A (zh) | 一种线程处理方法、装置、设备及介质 | |
CN110471769B (zh) | 一种虚拟机的资源管理方法及装置 | |
CN112860387A (zh) | 分布式任务调度方法、装置、计算机设备及存储介质 | |
CN111597044A (zh) | 任务调度方法、装置、存储介质及电子设备 | |
CN114461365A (zh) | 一种进程调度处理方法、装置、设备和存储介质 | |
CN110795323A (zh) | 负载统计方法、装置、存储介质及电子设备 | |
CN111143071A (zh) | 基于mcs系统的缓存分区管理方法、系统及相关组件 | |
CN103970597A (zh) | 读写均衡的阻塞队列实现方法及装置 | |
CN116881003A (zh) | 资源分配方法、装置、服务设备及存储介质 | |
US11743200B2 (en) | Techniques for improving resource utilization in a microservices architecture via priority queues | |
JP2008225641A (ja) | コンピュータシステム、割り込み制御方法及びプログラム | |
CN113687931A (zh) | 一种任务处理方法、系统及装置 | |
CN111078405B (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 |