CN114490123A - 一种任务处理方法、装置及电子设备和存储介质 - Google Patents

一种任务处理方法、装置及电子设备和存储介质 Download PDF

Info

Publication number
CN114490123A
CN114490123A CN202210043946.0A CN202210043946A CN114490123A CN 114490123 A CN114490123 A CN 114490123A CN 202210043946 A CN202210043946 A CN 202210043946A CN 114490123 A CN114490123 A CN 114490123A
Authority
CN
China
Prior art keywords
task
target
target task
queue
thread
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
Application number
CN202210043946.0A
Other languages
English (en)
Inventor
孙明刚
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Suzhou Inspur Intelligent Technology Co Ltd
Original Assignee
Suzhou Inspur Intelligent Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Suzhou Inspur Intelligent Technology Co Ltd filed Critical Suzhou Inspur Intelligent Technology Co Ltd
Priority to CN202210043946.0A priority Critical patent/CN114490123A/zh
Publication of CN114490123A publication Critical patent/CN114490123A/zh
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/548Queue

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列的多个任务队列单元,n为生产线程数量或消费线程数量;将第一目标任务存储至第一目标任务队列单元中。由此可见,本申请提供的任务处理方法,避免加锁和阻塞带来的性能低下的问题,提高了任务处理性能。

Description

一种任务处理方法、装置及电子设备和存储介质
技术领域
本申请涉及计算机技术领域,更具体地说,涉及一种任务处理方法、装置及一种电子设备和一种计算机可读存储介质。
背景技术
线程池是一种多线程处理形式,处理过程中将任务添加到队列,然后在创建线程后自动启动这些任务。线程池线程都是后台线程。每个线程都使用默认的堆栈大小,以默认的优先级运行,并处于多线程单元中。如果某个线程在托管代码中空闲,则线程池将插入另一个辅助线程来使所有处理器保持繁忙。如果所有线程池线程都始终保持繁忙,但队列中包含挂起的工作,则线程池将在一段时间后创建另一个辅助线程但线程的数目永远不会超过最大值。超过最大值的线程可以排队,但他们要等到其他线程完成后才启动。
线程过多会带来调度开销,进而影响缓存局部性和整体性能。而线程池维护着多个线程,等待着监督管理者分配可并发执行的任务。这避免了在处理短时间任务时创建与销毁线程的代价。线程池不仅能够保证内核的充分利用,还能防止过分调度。可用线程数量应该取决于可用的并发处理器、处理器内核、内存、网络sockets等的数量。
任务调度以执行线程的常见方法是使用同步队列,称作任务队列。池中的线程等待队列中的任务,并把执行完的任务放入完成队列中。目前,线程池实现上都会使用队列、链表等一些高级数据结构来组织任务,而使用这些数据时,比如任务的入队和出队需要使用锁机制保护队列结构,防止数据破坏,在一些应用场景中、锁的使用会引起系统性能下降,如存储系统中,锁的使用会导致系统延时过高。
另外,对于任务的产生和执行都会使用生产者和消费者模型,当生产者的生产效率高于消费者时,任务队列会满,这也会导致生产任务阻塞,影响性能。
因此,如何避免加锁和阻塞带来的性能低下是本领域技术人员需要解决的技术问题。
发明内容
本申请的目的在于提供一种任务处理方法、装置及一种电子设备和一种计算机可读存储介质,避免加锁和阻塞带来的性能低下的问题,提高了任务处理性能。
为实现上述目的,本申请提供了一种任务处理方法,包括:
当接收到第一目标任务的入队请求时,确定所述第一目标任务的生产线程和消费线程;
基于所述生成线程和所述消费线程在二维任务队列矩阵中确定对应的第一目标任务队列单元;其中,所述二维任务队列矩阵包括n行n列的多个任务队列单元,n为生产线程数量或消费线程数量;
将所述第一目标任务存储至所述第一目标任务队列单元中。
其中,还包括:
确定CPU拓扑,并基于所述CPU拓扑构建所述二维任务队列矩阵。
其中,每个所述任务队列单元包括环形队列和单向链表。
其中,将所述第一目标任务存储至所述第一目标任务队列单元中,包括:
判断所述第一目标任务队列单元中的环形队列是否已满;
若是,则将所述第一目标任务存储至所述第一目标任务队列单元中的第一环形队列中;
若否,则将所述第一目标任务存储至所述第一目标任务队列单元中的第一单向链表中。
其中,还包括:
在目标消费线程的执行任务时,遍历所述目标消费线程对应的第二目标任务队列单元;
若所述第二目标任务队列单元中存在任务,则从所述第二目标任务队列单元中取出第二目标任务,以便所述目标消费线程执行所述第二目标任务。
其中,从所述第二目标任务队列单元中取出第二目标任务,包括:
从所述第二目标任务队列单元中的第二环形队列取出第二目标任务。
其中,从所述第二目标任务队列单元中的第二环形队列取出第二目标任务之后,还包括:
判断所述第二目标任务队列单元中的第二单向链表是否存在任务;
若是,则将所述第二单向链表中的任务移动至所述第二环形队列中。
为实现上述目的,本申请提供了一种任务处理装置,包括:
第一确定模块,用于当接收到第一目标任务的入队请求时,确定所述第一目标任务的生产线程和消费线程;
第二确定模块,用于基于所述生成线程和所述消费线程在二维任务队列矩阵中确定对应的第一目标任务队列单元;其中,所述二维任务队列矩阵包括n行n列的多个任务队列单元,n为生产线程数量或消费线程数量;
存储模块,用于将所述第一目标任务存储至所述第一目标任务队列单元中。
为实现上述目的,本申请提供了一种电子设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上述任务处理方法的步骤。
为实现上述目的,本申请提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述任务处理方法的步骤。
通过以上方案可知,本申请提供的一种任务处理方法,包括:当接收到第一目标任务的入队请求时,确定所述第一目标任务的生产线程和消费线程;基于所述生成线程和所述消费线程在二维任务队列矩阵中确定对应的第一目标任务队列单元;其中,所述二维任务队列矩阵包括n行n列的多个任务队列单元,n为生产线程数量或消费线程数量;将所述第一目标任务存储至所述第一目标任务队列单元中。
本申请提供的任务处理方法,通过二维任务队列矩阵实现无锁以及满队后不阻塞的线程池,二维任务队列矩阵包括n行n列的多个任务队列单元,每个任务队列单元对应一个生产线程和一个消费线程,多个线程并发产生任务时无需加锁,而是将各自产生的任务存储至对应的任务队列单元中,同时一个线程对的任务生产和消费执行也无需加锁。当生产线程的生产能力大于消费线程的执行能力导致任务队列满时,生产线程无需阻塞等待,且不会丢失任务。由此可见,本申请提供的任务处理方法,避免加锁和阻塞带来的性能低下的问题,提高了任务处理性能。本申请还公开了一种任务处理装置及一种电子设备和一种计算机可读存储介质,同样能实现上述技术效果。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本申请。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:
图1为根据一示例性实施例示出的一种任务处理方法的流程图;
图2为根据一示例性实施例示出的一种二维任务队列矩阵的结构图;
图3为根据一示例性实施例示出的一种任务队列单元的结构图;
图4为根据一示例性实施例示出的另一种任务处理方法的流程图;
图5为根据一示例性实施例示出的一种任务处理装置的结构图;
图6为根据一示例性实施例示出的一种电子设备的结构图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。另外,在本申请实施例中,“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
本申请实施例公开了一种任务处理方法,避免加锁和阻塞带来的性能低下的问题,提高了任务处理性能。
参见图1,根据一示例性实施例示出的一种任务处理方法的流程图,如图1所示,包括:
S101:当接收到第一目标任务的入队请求时,确定所述第一目标任务的生产线程和消费线程;
S102:基于所述生成线程和所述消费线程在二维任务队列矩阵中确定对应的第一目标任务队列单元;其中,所述二维任务队列矩阵包括n行n列的多个任务队列单元,n为生产线程数量或消费线程数量;
S103:将所述第一目标任务存储至所述第一目标任务队列单元中。
在本实施例中,通过二维任务队列矩阵实现无锁以及满队后不阻塞的线程池。作为一种可行的实施方式,本实施例还包括:确定CPU拓扑,并基于所述CPU拓扑构建所述二维任务队列矩阵。在具体实施中,二维任务队列矩阵的维度由CPU核数确定,生产线程的数量和消费线程的数量均为二维任务队列矩阵的维度。例如,对于4核的CPU,二维任务队列矩阵的维度为4,也即如图2所示,二维任务队列矩阵包含4×4个任务队列单元,生产线程的数量和消费线程的数量均为4,每个生产线程对于图2中的一列,每个消费线程对于图2中的一行。
优选的,每个所述任务队列单元包括环形队列和单向链表。在具体实施中,每个任务队列单元task_ring如图3所示,包含一个环形队列和一个单向链表,生产线程产生的任务优选存储于环形队列中,其使用时生产线程放入任务,而消费线程取出、执行任务,不需要加锁同步。优选地,队列成员个数可定义为64。task_ring中除环形队列之外还有Ring.overheadlist单向链表,用于环形队列满后存储更多的任务,可以防止任务满后生产线程的阻塞等待。
其中ring中的成员task可以定义为如下结构:
单向链表:
Struct ss_list_node
{
Struct ss_list_node*next;
}ss_list_node;
Struct task{
Struct ss_list_node next;
Void(*task_func)();
}task;
其中task_func为具体要执行的任务。
在具体实施中,定义二维任务队列矩阵的目的在于入队免锁,当生产线程产生第一目标任务需要入队时,将其存储至对应的第一目标任务队列单元中。例如,生产线程2产生第一目标任务,其消费线程为消费线程2,因此,第一目标任务队列单元的位置为[2,1]。多个生产线程产生的多个任务可以同时向多个消费线程对应的任务队列单元中置入任务,而不需要加锁等待。
作为一种可行的实施方式,将所述第一目标任务存储至所述第一目标任务队列单元中,包括:判断所述第一目标任务队列单元中的环形队列是否已满;若是,则将所述第一目标任务存储至所述第一目标任务队列单元中的第一环形队列中;若否,则将所述第一目标任务存储至所述第一目标任务队列单元中的第一单向链表中。在具体实施中,当第一目标任务需要入队时,判断第一目标任务队列单元中的第一环形队列是否已满,如未满则存储至环形队列中,如已满则存储至单向列表中。
本申请实施例提供的任务处理方法,通过二维任务队列矩阵实现无锁以及满队后不阻塞的线程池,二维任务队列矩阵包括n行n列的多个任务队列单元,每个任务队列单元对应一个生产线程和一个消费线程,多个线程并发产生任务时无需加锁,而是将各自产生的任务存储至对应的任务队列单元中,同时一个线程对的任务生产和消费执行也无需加锁。当生产线程的生产能力大于消费线程的执行能力导致任务队列满时,生产线程无需阻塞等待,且不会丢失任务。由此可见,本申请实施例提供的任务处理方法,避免加锁和阻塞带来的性能低下的问题,提高了任务处理性能。
下面介绍本申请中任务出队过程,具体的:
参见图4,根据一示例性实施例示出的另一种任务处理方法的流程图,如图4所示,包括:
S201:在目标消费线程的执行任务时,遍历所述目标消费线程对应的第二目标任务队列单元;
S202:若所述第二目标任务队列单元中存在任务,则从所述第二目标任务队列单元中取出第二目标任务,以便所述目标消费线程执行所述第二目标任务。
在本实施例中,目标消费线程遍历其对应的每个第二目标任务队列单元,若其中存在任务,则取出任务并执行。作为一种可行的实施方式,从所述第二目标任务队列单元中的第二环形队列取出第二目标任务。
作为一种优选实施方式,从所述第二目标任务队列单元中的第二环形队列取出第二目标任务之后,还包括:判断所述第二目标任务队列单元中的第二单向链表是否存在任务;若是,则将所述第二单向链表中的任务移动至所述第二环形队列中。在具体实施中,第二目标任务出队后,判断第二目标任务队列单元中的第二单向链表是否存在任务,若是,则取出移动至第二环形队列中,以便下一次执行。
下面对本申请实施例提供的一种任务处理装置进行介绍,下文描述的一种任务处理装置与上文描述的一种任务处理方法可以相互参照。
参见图5,根据一示例性实施例示出的一种任务处理装置的结构图,如图5所示,包括:
第一确定模块501,用于当接收到第一目标任务的入队请求时,确定所述第一目标任务的生产线程和消费线程;
第二确定模块502,用于基于所述生成线程和所述消费线程在二维任务队列矩阵中确定对应的第一目标任务队列单元;其中,所述二维任务队列矩阵包括n行n列的多个任务队列单元,n为生产线程数量或消费线程数量;
存储模块503,用于将所述第一目标任务存储至所述第一目标任务队列单元中。
本申请实施例提供的任务处理装置,通过二维任务队列矩阵实现无锁以及满队后不阻塞的线程池,二维任务队列矩阵包括n行n列的多个任务队列单元,每个任务队列单元对应一个生产线程和一个消费线程,多个线程并发产生任务时无需加锁,而是将各自产生的任务存储至对应的任务队列单元中,同时一个线程对的任务生产和消费执行也无需加锁。当生产线程的生产能力大于消费线程的执行能力导致任务队列满时,生产线程无需阻塞等待,且不会丢失任务。由此可见,本申请实施例提供的任务处理装置,避免加锁和阻塞带来的性能低下的问题,提高了任务处理性能。
在上述实施例的基础上,作为一种优选实施方式,还包括:
构建模块,用于确定CPU拓扑,并基于所述CPU拓扑构建所述二维任务队列矩阵。
在上述实施例的基础上,作为一种优选实施方式,每个所述任务队列单元包括环形队列和单向链表。
在上述实施例的基础上,作为一种优选实施方式,所述存储模块503包括:
判断单元,用于判断所述第一目标任务队列单元中的环形队列是否已满;若是,则启动第一存储单元的工作流程;若否,则启动第二存储单元的工作流程;
第一存储单元,用于将所述第一目标任务存储至所述第一目标任务队列单元中的第一环形队列中;
第二存储单元,用于将所述第一目标任务存储至所述第一目标任务队列单元中的第一单向链表中。
在上述实施例的基础上,作为一种优选实施方式,还包括:
遍历模块,用于在目标消费线程的执行任务时,遍历所述目标消费线程对应的第二目标任务队列单元;
取出模块,用于若所述第二目标任务队列单元中存在任务,则从所述第二目标任务队列单元中取出第二目标任务,以便所述目标消费线程执行所述第二目标任务。
在上述实施例的基础上,作为一种优选实施方式,所述取出模块具体为若所述第二目标任务队列单元中存在任务,则从所述第二目标任务队列单元中的第二环形队列取出第二目标任务,以便所述目标消费线程执行所述第二目标任务的模块。
在上述实施例的基础上,作为一种优选实施方式,还包括:
移动模块,用于判断所述第二目标任务队列单元中的第二单向链表是否存在任务;若是,则将所述第二单向链表中的任务移动至所述第二环形队列中。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
基于上述程序模块的硬件实现,且为了实现本申请实施例的方法,本申请实施例还提供了一种电子设备,图6为根据一示例性实施例示出的一种电子设备的结构图,如图6所示,电子设备包括:
通信接口1,能够与其它设备比如网络设备等进行信息交互;
处理器2,与通信接口1连接,以实现与其它设备进行信息交互,用于运行计算机程序时,执行上述一个或多个技术方案提供的任务处理方法。而所述计算机程序存储在存储器3上。
当然,实际应用时,电子设备中的各个组件通过总线系统4耦合在一起。可理解,总线系统4用于实现这些组件之间的连接通信。总线系统4除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图6中将各种总线都标为总线系统4。
本申请实施例中的存储器3用于存储各种类型的数据以支持电子设备的操作。这些数据的示例包括:用于在电子设备上操作的任何计算机程序。
可以理解,存储器3可以是易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(ROM,Read Only Memory)、可编程只读存储器(PROM,Programmable Read-Only Memory)、可擦除可编程只读存储器(EPROM,Erasable Programmable Read-Only Memory)、电可擦除可编程只读存储器(EEPROM,Electrically Erasable Programmable Read-Only Memory)、磁性随机存取存储器(FRAM,ferromagnetic random access memory)、快闪存储器(Flash Memory)、磁表面存储器、光盘、或只读光盘(CD-ROM,Compact Disc Read-Only Memory);磁表面存储器可以是磁盘存储器或磁带存储器。易失性存储器可以是随机存取存储器(RAM,Random AccessMemory),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(SRAM,Static Random Access Memory)、同步静态随机存取存储器(SSRAM,Synchronous Static Random Access Memory)、动态随机存取存储器(DRAM,Dynamic Random Access Memory)、同步动态随机存取存储器(SDRAM,SynchronousDynamic Random Access Memory)、双倍数据速率同步动态随机存取存储器(DDRSDRAM,Double Data Rate Synchronous Dynamic Random Access Memory)、增强型同步动态随机存取存储器(ESDRAM,Enhanced Synchronous Dynamic Random Access Memory)、同步连接动态随机存取存储器(SLDRAM,SyncLink Dynamic Random Access Memory)、直接内存总线随机存取存储器(DRRAM,Direct Rambus Random Access Memory)。本申请实施例描述的存储器3旨在包括但不限于这些和任意其它适合类型的存储器。
上述本申请实施例揭示的方法可以应用于处理器2中,或者由处理器2实现。处理器2可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器2中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器2可以是通用处理器、DSP,或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。处理器2可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的方法的步骤,可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于存储介质中,该存储介质位于存储器3,处理器2读取存储器3中的程序,结合其硬件完成前述方法的步骤。
处理器2执行所述程序时实现本申请实施例的各个方法中的相应流程,为了简洁,在此不再赘述。
在示例性实施例中,本申请实施例还提供了一种存储介质,即计算机存储介质,具体为计算机可读存储介质,例如包括存储计算机程序的存储器3,上述计算机程序可由处理器2执行,以完成前述方法所述步骤。计算机可读存储介质可以是FRAM、ROM、PROM、EPROM、EEPROM、Flash Memory、磁表面存储器、光盘、或CD-ROM等存储器。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
或者,本申请上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台电子设备(可以是个人计算机、服务器、或者网络设备等)执行本申请各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (10)

1.一种任务处理方法,其特征在于,包括:
当接收到第一目标任务的入队请求时,确定所述第一目标任务的生产线程和消费线程;
基于所述生成线程和所述消费线程在二维任务队列矩阵中确定对应的第一目标任务队列单元;其中,所述二维任务队列矩阵包括n行n列的多个任务队列单元,n为生产线程数量或消费线程数量;
将所述第一目标任务存储至所述第一目标任务队列单元中。
2.根据权利要求1所述任务处理方法,其特征在于,还包括:
确定CPU拓扑,并基于所述CPU拓扑构建所述二维任务队列矩阵。
3.根据权利要求1所述任务处理方法,其特征在于,每个所述任务队列单元包括环形队列和单向链表。
4.根据权利要求3所述任务处理方法,其特征在于,将所述第一目标任务存储至所述第一目标任务队列单元中,包括:
判断所述第一目标任务队列单元中的环形队列是否已满;
若是,则将所述第一目标任务存储至所述第一目标任务队列单元中的第一环形队列中;
若否,则将所述第一目标任务存储至所述第一目标任务队列单元中的第一单向链表中。
5.根据权利要求1所述任务处理方法,其特征在于,还包括:
在目标消费线程的执行任务时,遍历所述目标消费线程对应的第二目标任务队列单元;
若所述第二目标任务队列单元中存在任务,则从所述第二目标任务队列单元中取出第二目标任务,以便所述目标消费线程执行所述第二目标任务。
6.根据权利要求5所述任务处理方法,其特征在于,从所述第二目标任务队列单元中取出第二目标任务,包括:
从所述第二目标任务队列单元中的第二环形队列取出第二目标任务。
7.根据权利要求6所述任务处理方法,其特征在于,从所述第二目标任务队列单元中的第二环形队列取出第二目标任务之后,还包括:
判断所述第二目标任务队列单元中的第二单向链表是否存在任务;
若是,则将所述第二单向链表中的任务移动至所述第二环形队列中。
8.一种任务处理装置,其特征在于,包括:
第一确定模块,用于当接收到第一目标任务的入队请求时,确定所述第一目标任务的生产线程和消费线程;
第二确定模块,用于基于所述生成线程和所述消费线程在二维任务队列矩阵中确定对应的第一目标任务队列单元;其中,所述二维任务队列矩阵包括n行n列的多个任务队列单元,n为生产线程数量或消费线程数量;
存储模块,用于将所述第一目标任务存储至所述第一目标任务队列单元中。
9.一种电子设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至7任一项所述任务处理方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述任务处理方法的步骤。
CN202210043946.0A 2022-01-14 2022-01-14 一种任务处理方法、装置及电子设备和存储介质 Withdrawn CN114490123A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210043946.0A CN114490123A (zh) 2022-01-14 2022-01-14 一种任务处理方法、装置及电子设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210043946.0A CN114490123A (zh) 2022-01-14 2022-01-14 一种任务处理方法、装置及电子设备和存储介质

Publications (1)

Publication Number Publication Date
CN114490123A true CN114490123A (zh) 2022-05-13

Family

ID=81512690

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210043946.0A Withdrawn CN114490123A (zh) 2022-01-14 2022-01-14 一种任务处理方法、装置及电子设备和存储介质

Country Status (1)

Country Link
CN (1) CN114490123A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115951987A (zh) * 2023-03-09 2023-04-11 浪潮电子信息产业股份有限公司 一种存储系统中多线程的任务执行方法、装置以及介质
CN116166203A (zh) * 2023-04-19 2023-05-26 苏州浪潮智能科技有限公司 一种raid卡的命名空间管理方法、装置、设备及介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115951987A (zh) * 2023-03-09 2023-04-11 浪潮电子信息产业股份有限公司 一种存储系统中多线程的任务执行方法、装置以及介质
CN116166203A (zh) * 2023-04-19 2023-05-26 苏州浪潮智能科技有限公司 一种raid卡的命名空间管理方法、装置、设备及介质

Similar Documents

Publication Publication Date Title
US20220027210A1 (en) Work Stealing in Heterogeneous Computing Systems
JP4526412B2 (ja) マルチプロセッサシステムにおけるタスク管理方法および装置
JP7087029B2 (ja) 中央処理装置(cpu)と補助プロセッサとの間の改善した関数コールバック機構
EP3230860B1 (en) Technologies for efficient synchronization barriers with work stealing support
US8375390B2 (en) Scheduling method and scheduling apparatus
JP2013506179A (ja) 命令スレッドを組み合わせた実行の管理システムおよび管理方法
US9858115B2 (en) Task scheduling method for dispatching tasks based on computing power of different processor cores in heterogeneous multi-core processor system and related non-transitory computer readable medium
CN114490123A (zh) 一种任务处理方法、装置及电子设备和存储介质
US20110161637A1 (en) Apparatus and method for parallel processing
US10579413B2 (en) Efficient task scheduling using a locking mechanism
JP2010079622A (ja) マルチコアプロセッサシステム、および、そのタスク制御方法
CN110162344B (zh) 一种隔离限流的方法、装置、计算机设备及可读存储介质
RU2009139312A (ru) Способ устранения исключительной ситуации в одном из ядер многоядерной системы
CN112306652A (zh) 带有上下文提示的功能的唤醒和调度
CN104679575B (zh) 输入输出流的控制系统及其方法
CN103842986A (zh) 用于在事务中间件机器环境中支持自调谐锁定机制的系统和方法
US20220066831A1 (en) Lock-free work-stealing thread scheduler
CN109002286A (zh) 基于同步编程的数据异步处理方法及装置
CN110618794B (zh) 一种SSD固件访问NandFlash的方法和系统
US9619277B2 (en) Computer with plurality of processors sharing process queue, and process dispatch processing method
CN111433738A (zh) 控制器事件队列
US7996848B1 (en) Systems and methods for suspending and resuming threads
US20060100986A1 (en) Task switching
WO2017099863A1 (en) Method and apparatus for time-based scheduling of tasks
CN103714511A (zh) 一种基于gpu的分支处理方法及装置

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: 20220513

WW01 Invention patent application withdrawn after publication