CN115129457A - 一种任务处理方法、装置、设备及可读存储介质 - Google Patents
一种任务处理方法、装置、设备及可读存储介质 Download PDFInfo
- Publication number
- CN115129457A CN115129457A CN202210879852.7A CN202210879852A CN115129457A CN 115129457 A CN115129457 A CN 115129457A CN 202210879852 A CN202210879852 A CN 202210879852A CN 115129457 A CN115129457 A CN 115129457A
- Authority
- CN
- China
- Prior art keywords
- thread
- read
- task
- network module
- busy
- 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
- 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)
- Computer And Data Communications (AREA)
Abstract
本申请公开了一种任务处理方法、装置、设备及可读存储介质,该方法包括:创建网络模块连接对象,并为网络模块连接对象绑定本地线程和备用线程;接收网络模块连接对象的读写任务,判断本地线程是否繁忙;如果是,则从备用线程中选出空闲的目标线程,并利用目标线程执行读写任务;如果否,则利用本地线程执行读写任务。本申请属于计算机应用领域,在本申请中,网络模块连接对象并非仅与一个线程进行绑定,而是绑定了本地线程和备用线程,当本地线程繁忙,还可利用备用线程中空闲的目标线程执行读写任务。如此,便可不再受限于单个线程的性能瓶颈,可以多个线程共同为同一个连接进行服务,能够有效体现出多线程的并行作用,有效提升读写能力。
Description
技术领域
本申请涉及计算机应用技术领域,特别是涉及一种任务处理方法、装置、设备及可读存储介质。
背景技术
当前存储系统的monitor(Mon,集群的监视器守护进程)和osd(Object-basedStorage Device,对象存储设备)服务等各种服务使用的网络模块(Async),都是每个服务根据功能不同分别去创建不同的AsyncMessenger(网络模块连接管理对象)来管理网络模块连接对象(AsyncConnetion)。
具体的,AsyncMessenger会创建固定个数的workers(工作线程)来处理该AsyncMessenger对象所包含的所有连接的读写等操作,比如当前默认的创建3个worker,当有连接来连时,AsyncMessenger会给这个新连接创建一个AsyncConnetion对象,并把这个AsyncConnection绑定一个worker,这个链接所有的读写交互都通过这个绑定的workder进行。此时,若该连接有大量读写操作的时候,则只有这个绑定的worker在工作。由于每个线程的读写都是有限制的,就会造成大量读写任务在等待,最后展现出来的就是读写的性能瓶颈。该连接在大规模读写情况下,时延会增大,读写能力受限制。
综上所述,如何有效地提升读写能力等问题,是目前本领域技术人员急需解决的技术问题。
发明内容
本申请的目的是提供一种任务处理方法、装置、设备及可读存储介质,通过优化当前单worker的读写模式来优化链接读写性能。
为解决上述技术问题,本申请提供如下技术方案:
一种读写处理方法,包括:
创建网络模块连接对象,并为所述网络模块连接对象绑定本地线程和备用线程;
接收所述网络模块连接对象的读写任务,判断所述本地线程是否繁忙;
如果是,则从所述备用线程中选出空闲的目标线程,并利用所述目标线程执行所述读写任务;
如果否,则利用所述本地线程执行所述读写任务。
优选地,判断所述本地线程是否繁忙,包括:
获取所述本地线程的繁忙标记位,并判断所述繁忙标记位是否为真;
如果是,则确定所述本地线程繁忙;
如果否,则确定所述本地线程空闲。
优选地,还包括:
获取所述本地线程的等待队列长度,并判断所述等待队列长度是否大于繁忙阈值;
如果是,则将所述繁忙标记位标记为真;
如果否,则将所述繁忙标记位标记为假。
优选地,还包括:
若所述备用线程中无空闲的所述目标线程,则将所述读写任务写入所述本地线程的等待队列中。
优选地,还包括:
遍历所述备用线程,若所述备用线程中存在空闲的所述目标线程,则将所述读写任务转入所述目标线程。
优选地,利用所述本地线程执行所述读写任务,包括:
利用所述本地线程执行所述读写任务对应的读写操作,得到内容地址;
将所述内容地址反馈给所述网络模块连接对象。
优选地,所述创建网络模块连接对象,并为所述网络模块连接对象绑定本地线程和备用线程,包括:
为目标功能对应连接创建所述网络模块连接对象;
将所述目标功能对应的全部线程与所述网络模块连接对象进行绑定。
一种任务处理装置,包括:
创建绑定模块,用于创建网络模块连接对象,并为所述网络模块连接对象绑定本地线程和备用线程;
任务接收模块,用于接收所述网络模块连接对象的读写任务;
任务分配执行模块,用于判断所述本地线程是否繁忙;如果是,则从所述备用线程中选出空闲的目标线程,并利用所述目标线程执行所述读写任务;如果否,则利用所述本地线程执行所述读写任务。
一种电子设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现上述任务处理方法的步骤。
一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述任务处理方法的步骤。
应用本申请实施例所提供的方法,创建网络模块连接对象,并为网络模块连接对象绑定本地线程和备用线程;接收网络模块连接对象的读写任务,判断本地线程是否繁忙;如果是,则从备用线程中选出空闲的目标线程,并利用目标线程执行读写任务;如果否,则利用本地线程执行读写任务。
在本申请中,在创建网络模块连接对象后,为该网络模块连接对象绑定本地线程和备用线程。如此,当接收到网络模块连接对象的读写任务后,若本地线程繁忙,则可从备用线程中找出空闲的目标线程来执行该读写任务;若本地线程不繁忙,则由本地线程执行读写任务。也就是说,在本申请中,网络模块连接对象并非仅与一个线程进行绑定,而是绑定了本地线程和备用线程,当本地线程繁忙,还可利用备用线程中空闲的目标线程执行读写任务。如此,便可不再受限于单个线程的性能瓶颈,可以多个线程共同为同一个连接进行服务,能够有效体现出多线程的并行作用,有效提升读写能力。
相应地,本申请实施例还提供了与上述任务处理方法相对应的任务处理装置、设备和可读存储介质,具有上述技术效果,在此不再赘述。
附图说明
为了更清楚地说明本申请实施例或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例中一种任务处理方法的实施流程图;
图2为本申请实施例中一种任务处理方法的具体实施示意图;
图3为本申请实施例中一种任务处理装置的结构示意图;
图4为本申请实施例中一种电子设备的结构示意图;
图5为本申请实施例中一种电子设备的具体结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面结合附图和具体实施方式对本申请作进一步的详细说明。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
为便于理解,下面对相关技术进行解释说明:
存储系统的monitor和osd服务等各种服务使用的Async(网络模块),每个服务根据功能不同分别去创建不同的AsyncMessenger管理对象。例如,创建一个前端业务的AsyncMessager来管理前端连接,创建一个集群业务的AsyncMessenger来管理集群读写操作的的所有网络连接;OSD服务就会创建一个AsyncMessenger对象来专门管理读写业务的所有链接。
通常,AsyncMessenger会创建固定个数的workers来处理该AsyncMessenger对象所包含的所有连接的读写等操作。
本申请中实施例所提供的任务处理方法,可以应用于存储系统的任意服务对应创建的AsyncMessenger中。具体的,请参考图1,图1为本申请实施例中一种任务处理方法的流程图,该方法包括以下步骤:
S101、创建网络模块连接对象,并为网络模块连接对象绑定本地线程和备用线程。
当有连接来连AsyncMessenger对应的服务时,可以为该连接创建一个网络模块连接对象,并且为该网络模块连接对象绑定工作线程。为便于描述,本文将工作线程简称为线程,即本文中的线程等同工作线程。
需要注意的是,在本申请实施例中,为网络模块连接对象绑定的线程并非仅有一个,而是为网络模块连接对象绑定本地线程和备用线程。也就是所,网络模块连接对象绑定的线程至少有两个,其一为个本地线程(local_worker)和其二为备用线程。当然,在实际应用中,可以备用线程的数量在1个与AsyncMessenger所创建的连接总数减一之间。例如,AsyncMessenger对应创建了3个worker,在创建了网络模块连接对象后,可将这3个worker中的其中一个worker绑定为网络模块连接对象的local_worker,而将其他两个worker中的任意一个或者两个绑定为网络模块连接对象的备用线程。
具体的,在绑定线程的具体实现方式可具体为:在创建AsyncConnection(网络模块连接对象)的时候,增加入参workers。即除了选择的绑定的本地线程,还将当前所属AsyncMessengr创建的其他worker都放在workers里面,当作备用线程。
在本申请中的一种具体实施方式中,步骤S101创建网络模块连接对象,并为网络模块连接对象绑定本地线程和备用线程,包括:
步骤一、为目标功能对应连接创建网络模块连接对象;
步骤二、将目标功能对应的全部线程与网络模块连接对象进行绑定。
也就是说,本申请中的网络模块连接对象是与目标功能的连接相对应的。在创建网络模块连接对象,为其绑定线程时,可将目标功能对应的全部线程与网络模块连接对象进行绑定。从而使得单连接也可使用目标功能对应的全部线程并行执行相应的读写任务。相对于现有的单连接仅可使用目标功能对应的单一线程而已,本申请中的单连接可使用的线程数量更多,为降低单一线程的压力提供了基础条件。
S102、接收网络模块连接对象的读写任务,判断本地线程是否繁忙。
网络模块连接对象即与连接对应,当接收到该连接的消息时,即可视为接收到网络模块连接对象对应的读写任务。在本申请中,将读任务和写任务统称为读写任务。也就是说,读写任务可以是单纯的读任务,也可以是单纯的写任务,也可以为读和写混合的任务。
接收到读写任务之后,首先判断该网络模块连接对象对应绑定的本地线程是否繁忙,也即判断当前线程是否繁忙。
在本申请中的一种具体实施方式中,判断本地线程是否繁忙,包括:
步骤一、获取本地线程的繁忙标记位,并判断繁忙标记位是否为真;
步骤二、如果是,则确定本地线程繁忙;
步骤三、如果否,则确定本地线程空闲。
为便于描述,下面将上述三个步骤结合起来进行说明。
可以为线程设置繁忙标记位,通过对繁忙标记为进行逻辑的真假判断,即可确定线程是否繁忙。当需要确定本地线程是否繁忙时,则可直接获取该本地线程的繁忙标记位,若繁忙标记位逻辑判断结果为真,则确定该本地线程繁忙;否则确定该本地线程空闲。当然,在实际应用中还可以对繁忙标记位不同的值表征不同的繁忙状态,如标记为0,表明空闲,标记为1,则表明常规状态,标记为2为繁忙。
该繁忙标记位可以根据线程的时延、待处理任务量等信息来进行确定。时延大,对应繁忙,待处理任务量大,对应繁忙。本申请对于具体采用哪种或哪些参数来确定线程是否繁忙并不做限定。繁忙标记位可以定期更新,也可实时更新。具体的,在本申请中的一种具体实施方式中,可通过执行以下步骤来更新繁忙标记位:
步骤一、获取本地线程的等待队列长度,并判断等待队列长度是否大于繁忙阈值;
步骤二、如果是,则将繁忙标记位标记为真;
步骤三、如果否,则将繁忙标记位标记为假。
为便于描述,下面将上述三个步骤结合起来进行说明。
在本申请中,可以根据统计数据或经验,设置好繁忙阈值以及其对应的具体数值。在本实施例中,对于该繁忙阈值的具体数值并不做限定。
可定期获取该本地线程的等待队列长度,也可在每接收到一个连接对应的消息时,获取该本地线程的等待队列长度。若该等待队列长度大于繁忙阈值,则可将繁忙标记位标记为真,否则将繁忙标记位标记为假。
当然,在实际应用中,不仅可以针对本地线程设置繁忙标记位,还可为备用线程设置繁忙标记位。也就是说,针对所有线程均可设置繁忙标记位,并按照定时或实时等方式不断地获取对应的等待队列长度,并基于繁忙阈值进行比对,从而对繁忙标记位进行标识。从而可通过获取对应的繁忙标记位的方式,确定相应的线程是否繁忙,或确定相应的线程是否空闲。
确定线程是否繁忙,可以根据线程的时延、待处理任务量来进行确定,在此不再一一赘述。
基于该本地线程是否繁忙,可以选定执行该读写任务的工作线程。具体的,如果判断结果为是,则执行步骤S103;如果判断结果为否,则执行步骤S104。
S103、从备用线程中选出空闲的目标线程,并利用目标线程执行读写任务。
确定本地线程处于繁忙的情况下,为避免出现单个线程繁忙而其他线程空闲导致出现性能瓶颈的情况,此时可以从备用线程中找出空闲的目标线程。这里的目标线程可以为备用线程中任意一个空闲的线程。
然后,将该读写任务分配给目标线程,也就是说,将原本应当网络模块连接对象的本地线程执行的读写任务,转交给网络模块连接对象的备用线程中空闲的目标线程进行执行。
在本申请中的一种具体实施方式中,考虑到线程可能均处于繁忙情况,因而若备用线程中无空闲的目标线程,则将读写任务写入本地线程的等待队列中。也就是说,当备用线程没有空闲的目标线程时,则将读写任务写入到本地线程的等待队列,等待本地线程按照顺序执行完当前待执行的读写任务后,执行该读写任务。
在本申请中的一种具体实施方式中,考虑到线程处理任务需要耗费不同的时间,即可能某个线程处于繁忙之后,在短时间内即可完成其待处理任务,因而,即便在明确本地线程处于繁忙但又未找到空闲的目标线程,而确定继续由本地线程执行该读写任务之后,还可遍历备用线程,若备用线程中存在空闲的目标线程,则将读写任务转入目标线程。如此,便可根据各个线程的处理能力,及时调整各个线程对应的待处理任务。从而加快读写任务的执行效率。
S104、利用本地线程执行读写任务。
若本地线程不繁忙,则直接由该本地线程执行该读写任务。
具体的,利用本地线程执行读写任务,包括:
步骤一、利用本地线程执行读写任务对应的读写操作,得到内容地址;
步骤二、将内容地址反馈给网络模块连接对象。
也就是说,本地线程执行读写任务,即本地线程执行该读写任务对应的读写操作,并得到内容地址。得到内容地址后,可将该内容地址反馈给网络模块连接对象。网络模块连接对象接收到内容地址之后,可以进一步将内容地址反馈给其对应的上层应用。当然,对于备用线程执行该读写任务,其具体执行过程也可参照于此,在此不再一一赘述。
应用本申请实施例所提供的方法,创建网络模块连接对象,并为网络模块连接对象绑定本地线程和备用线程;接收网络模块连接对象的读写任务,判断本地线程是否繁忙;如果是,则从备用线程中选出空闲的目标线程,并利用目标线程执行读写任务;如果否,则利用本地线程执行读写任务。
在本申请中,在创建网络模块连接对象后,为该网络模块连接对象绑定本地线程和备用线程。如此,当接收到网络模块连接对象的读写任务后,若本地线程繁忙,则可从备用线程中找出空闲的目标线程来执行该读写任务;若本地线程不繁忙,则由本地线程执行读写任务。也就是说,在本申请中,网络模块连接对象并非仅与一个线程进行绑定,而是绑定了本地线程和备用线程,当本地线程繁忙,还可利用备用线程中空闲的目标线程执行读写任务。如此,便可不再受限于单个线程的性能瓶颈,可以多个线程共同为同一个连接进行服务,能够有效体现出多线程的并行作用,有效提升读写能力。
为便于本领域技术人员更好地连接本申请实施例所提供的任务处理方法,下面以分布式文件系统链接读写处理的具体应用场景为例,对任务处理方法的具体应用进行详细说明。
将参考图2,图2为本申请实施例中一种任务处理方法的具体实施示意图。具体的实施过程包括:
步骤(1)、在创建AsyncConnection对象的时候,增加入参workers。即,除了选择的绑定的本地线程,还将当前所属AsyncMessengr创建的其他worker都放在workers里面。也就是说,一个连接与一个线程组(包括本地线程和备用线程)绑定。
步骤(2)、在链接接收消息,并进行读写操作时,判断当前绑定local_workder的状态,如果当前local_worker是空闲状态,则直接使用当前的local_worker进行读写操作。
步骤(3)、如果当前绑定的local_worker处于繁忙状态(如工作等待队列较多),去遍历workers,去找空闲的worker,如果找到空闲的worker,则将新的消息的读写转给空闲的worker进行处理。即,将读取到的内容的地址bufflist传递给AsyncConnection。
步骤(4)、如果所有的workers都处于繁忙状态,则将新的消息的读写仍然保持在当前worker的等待队列中,等待被local_worker处理。
AsyncConnection接收线程反馈的地址bufflist,并将处理消息发给具体的上层服务。
可见,本申请实施例所提供的任务处理方法,优化了链接读写处理的worker使用,灵活运用多线程读写提高性能,主要针对链接少但是读写要求高多情况下造成的worker使用不均的情况,通过多worker并行读取来提升了链接的读写能力,使产品的读写性能有一定的提升。
相应于上面的方法实施例,本申请实施例还提供了一种任务处理装置,下文描述的任务处理装置与上文描述的任务处理方法可相互对应参照。
参见图3所示,该装置包括以下模块:
创建绑定模块101,用于创建网络模块连接对象,并为网络模块连接对象绑定本地线程和备用线程;
任务接收模块102,用于接收网络模块连接对象的读写任务;
任务分配执行模块103,用于判断本地线程是否繁忙;如果是,则从备用线程中选出空闲的目标线程,并利用目标线程执行读写任务;如果否,则利用本地线程执行读写任务。
应用本申请实施例所提供的装置,创建网络模块连接对象,并为网络模块连接对象绑定本地线程和备用线程;接收网络模块连接对象的读写任务,判断本地线程是否繁忙;如果是,则从备用线程中选出空闲的目标线程,并利用目标线程执行读写任务;如果否,则利用本地线程执行读写任务。
在本申请中,在创建网络模块连接对象后,为该网络模块连接对象绑定本地线程和备用线程。如此,当接收到网络模块连接对象的读写任务后,若本地线程繁忙,则可从备用线程中找出空闲的目标线程来执行该读写任务;若本地线程不繁忙,则由本地线程执行读写任务。也就是说,在本申请中,网络模块连接对象并非仅与一个线程进行绑定,而是绑定了本地线程和备用线程,当本地线程繁忙,还可利用备用线程中空闲的目标线程执行读写任务。如此,便可不再受限于单个线程的性能瓶颈,可以多个线程共同为同一个连接进行服务,能够有效体现出多线程的并行作用,有效提升读写能力。
在本申请的一种具体实施方式中,任务分配执行模块103,具体用于获取本地线程的繁忙标记位,并判断繁忙标记位是否为真;
如果是,则确定本地线程繁忙;
如果否,则确定本地线程空闲。
在本申请的一种具体实施方式中,任务分配执行模块103,还用于获取本地线程的等待队列长度,并判断等待队列长度是否大于繁忙阈值;
如果是,则将繁忙标记位标记为真;
如果否,则将繁忙标记位标记为假。
在本申请的一种具体实施方式中,任务分配执行模块103,还用于若备用线程中无空闲的目标线程,则将读写任务写入本地线程的等待队列中。
在本申请的一种具体实施方式中,任务分配执行模块103,还用于再次遍历备用线程,若备用线程中存在空闲的目标线程,则将读写任务转入目标线程。
在本申请的一种具体实施方式中,任务分配执行模块103,具体用于利用本地线程执行读写任务对应的读写操作,得到内容地址;
将内容地址反馈给网络模块连接对象。
在本申请的一种具体实施方式中,创建绑定模块101,具体用于为目标功能对应连接创建网络模块连接对象;
将目标功能对应的全部线程与网络模块连接对象进行绑定。
相应于上面的方法实施例,本申请实施例还提供了一种电子设备,下文描述的一种电子设备与上文描述的一种任务处理方法可相互对应参照。
参见图4所示,该电子设备包括:
存储器332,用于存储计算机程序;
处理器322,用于执行计算机程序时实现上述方法实施例的任务处理方法的步骤。
具体的,请参考图5,图5为本实施例提供的一种电子设备的具体结构示意图,该电子设备可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processing units,CPU)322(例如,一个或一个以上处理器)和存储器332,存储器332存储有一个或一个以上的计算机应用程序342或数据344。其中,存储器332可以是短暂存储或持久存储。存储在存储器332的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对数据处理设备中的一系列指令操作。更进一步地,中央处理器322可以设置为与存储器332通信,在电子设备301上执行存储器332中的一系列指令操作。
电子设备301还可以包括一个或一个以上电源326,一个或一个以上有线或无线网络接口350,一个或一个以上输入输出接口358,和/或,一个或一个以上操作系统341。
上文所描述的任务处理方法中的步骤可以由电子设备的结构实现。
相应于上面的方法实施例,本申请实施例还提供了一种可读存储介质,下文描述的一种可读存储介质与上文描述的一种任务处理方法可相互对应参照。
一种可读存储介质,可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述方法实施例的任务处理方法的步骤。
该可读存储介质具体可以为U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可存储程序代码的可读存储介质。
本领域技术人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
最后,还需要说明的是,在本文中,术语包括、包含或者其他任何变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。
本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (10)
1.一种任务处理方法,其特征在于,包括:
创建网络模块连接对象,并为所述网络模块连接对象绑定本地线程和备用线程;
接收所述网络模块连接对象的读写任务,判断所述本地线程是否繁忙;
如果是,则从所述备用线程中选出空闲的目标线程,并利用所述目标线程执行所述读写任务;
如果否,则利用所述本地线程执行所述读写任务。
2.根据权利要求1所述的任务处理方法,其特征在于,判断所述本地线程是否繁忙,包括:
获取所述本地线程的繁忙标记位,并判断所述繁忙标记位是否为真;
如果是,则确定所述本地线程繁忙;
如果否,则确定所述本地线程空闲。
3.根据权利要求2所述的任务处理方法,其特征在于,还包括:
获取所述本地线程的等待队列长度,并判断所述等待队列长度是否大于繁忙阈值;
如果是,则将所述繁忙标记位标记为真;
如果否,则将所述繁忙标记位标记为假。
4.根据权利要求1所述的任务处理方法,其特征在于,还包括:
若所述备用线程中无空闲的所述目标线程,则将所述读写任务写入所述本地线程的等待队列中。
5.根据权利要求4所述的任务处理方法,其特征在于,还包括:
遍历所述备用线程,若所述备用线程中存在空闲的所述目标线程,则将所述读写任务转入所述目标线程。
6.根据权利要求1所述的任务处理方法,其特征在于,利用所述本地线程执行所述读写任务,包括:
利用所述本地线程执行所述读写任务对应的读写操作,得到内容地址;
将所述内容地址反馈给所述网络模块连接对象。
7.根据权利要求1至6任一项所述的任务处理方法,其特征在于,所述创建网络模块连接对象,并为所述网络模块连接对象绑定本地线程和备用线程,包括:
为目标功能对应连接创建所述网络模块连接对象;
将所述目标功能对应的全部线程与所述网络模块连接对象进行绑定。
8.一种任务处理装置,其特征在于,包括:
创建绑定模块,用于创建网络模块连接对象,并为所述网络模块连接对象绑定本地线程和备用线程;
任务接收模块,用于接收所述网络模块连接对象的读写任务;
任务分配执行模块,用于判断所述本地线程是否繁忙;如果是,则从所述备用线程中选出空闲的目标线程,并利用所述目标线程执行所述读写任务;如果否,则利用所述本地线程执行所述读写任务。
9.一种电子设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至7任一项所述任务处理方法的步骤。
10.一种可读存储介质,其特征在于,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述任务处理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210879852.7A CN115129457A (zh) | 2022-07-25 | 2022-07-25 | 一种任务处理方法、装置、设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210879852.7A CN115129457A (zh) | 2022-07-25 | 2022-07-25 | 一种任务处理方法、装置、设备及可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115129457A true CN115129457A (zh) | 2022-09-30 |
Family
ID=83385155
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210879852.7A Pending CN115129457A (zh) | 2022-07-25 | 2022-07-25 | 一种任务处理方法、装置、设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115129457A (zh) |
-
2022
- 2022-07-25 CN CN202210879852.7A patent/CN115129457A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2020211579A1 (zh) | 一种基于分布式批量处理系统的处理方法、装置及系统 | |
CN100533387C (zh) | 执行作业步的系统和方法 | |
CN104090847B (zh) | 一种固态存储设备的地址分配方法 | |
CN110096336B (zh) | 数据监控方法、装置、设备和介质 | |
CN108647104B (zh) | 请求处理方法、服务器及计算机可读存储介质 | |
US8516492B2 (en) | Soft partitions and load balancing | |
GB2293675A (en) | Process allocation in a data processing system | |
CN108021449B (zh) | 一种协程实现方法、终端设备及存储介质 | |
CN111309644B (zh) | 一种内存分配方法、装置和计算机可读存储介质 | |
CN103412786A (zh) | 一种高性能服务器架构系统及数据处理方法 | |
CN107818012B (zh) | 一种数据处理方法、装置及电子设备 | |
CN111338779A (zh) | 资源分配方法、装置、计算机设备和存储介质 | |
CN106775975B (zh) | 进程调度方法及装置 | |
CN105528371A (zh) | 一种执行写任务的方法、装置及系统 | |
US8775767B2 (en) | Method and system for allocating memory to a pipeline | |
CN108932112B (zh) | 一种固态颗粒的数据读写方法、装置、设备及介质 | |
CN111177032A (zh) | 缓存空间申请方法、系统、装置及计算机可读存储介质 | |
CN113934529A (zh) | 多级别核心的任务调度方法、装置、系统和存储介质 | |
JP2007328413A (ja) | 負荷分散方法 | |
CN114896295B (zh) | 大数据场景下的数据脱敏方法、脱敏装置及脱敏系统 | |
CN115129457A (zh) | 一种任务处理方法、装置、设备及可读存储介质 | |
CN111143063A (zh) | 任务的资源预约方法及装置 | |
CN112817516A (zh) | 数据读写控制方法、装置、设备和存储介质 | |
CN110737530A (zh) | 一种提升handle标识解析系统收包能力的方法 | |
CN116149814A (zh) | 一种基于kafka的数据持久化任务分布式调度方法及系统 |
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 |