CN114995970A - 任务处理方法、装置、存储介质及电子设备 - Google Patents
任务处理方法、装置、存储介质及电子设备 Download PDFInfo
- Publication number
- CN114995970A CN114995970A CN202210446275.2A CN202210446275A CN114995970A CN 114995970 A CN114995970 A CN 114995970A CN 202210446275 A CN202210446275 A CN 202210446275A CN 114995970 A CN114995970 A CN 114995970A
- Authority
- CN
- China
- Prior art keywords
- coroutine
- task
- target
- execution
- historical
- 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/485—Task life-cycle, e.g. stopping, restarting, resuming execution
-
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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
技术领域
本申请涉及电子设备技术领域,尤其涉及一种任务处理方法、装置、存储介质及电子设备。
背景技术
随着电子设备处理能力和存储能力的迅猛发展,海量的应用程序得到了迅速传播和使用,提高了用户的生活质量以及使用中的娱乐感。
应用程序在内存环境中的基本执行单元是进程。一个进程可以拥有多个线程,一个线程可以拥有多个协程。相关技术中,根据优先级不同,协程可以分为根协程(即父协程)与子协程。对于根协程,由于在创建时没有更高一级的协程存在,内部的上下文对象(Coroutine Context)为空上下文对象(Empty Coroutine),因此其具备一种独立的特性,不受其他协程影响。对于子协程,由于其在根协程作用域中产生,因此其上下文对象为根协程的上下文对象。协程为了保持运行时的稳定,上下文对象设定后将无法进行更改。
当根协程由于外部原因取消运行,会直接导致子协程取消运行,此时运行在子协程的内部任务也会取消。在一些实现方式中,提供了相关等待协程执行完成的方法,可实现等待子协程结束任务后再取消根协程。然而,若根协程在需要被取消时被子协程拦截,倘若子协程是一个不可控的耗时操作,则会导致根协程一直处于挂起状态,根协程可能存在着其他业务操作,从而导致不可控的逻辑出现。
发明内容
本申请实施例提供一种任务处理方法、装置、存储介质及电子设备,可提升任务处理效率。
第一方面,本申请实施例提供一种任务处理方法,包括:
当监听到目标根协程的销毁指令时,确定子协程当前未执行完的任务是否可取消,其中所述目标根协程和所述子协程为父子关系;
若否,则创建目标执行协程,其中,所述目标执行协程的生命周期为应用级别;
将未执行完的任务调度给所述目标执行协程处理。
第二方面,本申请实施例提供了一种任务处理装置,包括:
第一确定单元,用于当监听到目标根协程的销毁指令时,确定子协程当前未执行完的任务是否可取消,其中所述目标根协程和所述子协程为父子关系;
创建单元,用于在所述确定单元确定为是时,创建目标执行协程,其中,所述目标执行协程的生命周期为应用级别;
第一处理单元,用于将未执行完的任务调度给所述目标执行协程处理。
在一实施方式中,所述装置还包括:
获取单元,用于在创建目标执行协程之前,获取所述子协程的协程标识;
第二确定单元,用于确定目标映射关系集合中是否存在于所述协程标识匹配的目标历史协程标识,所述目标映射关系集合包括:历史协程标识和历史任务之间的对应关系;
第二处理单元,用于在所述第二确定单元确定为是时,获取基于所述目标历史协程标识确定对应的历史执行协程,并将所述未执行完的任务调度给所述历史执行协程处理;
所述创建单元,用于在所述第二确定单元确定为否时,创建目标执行协程。
在一实施方式中,所述装置还包括:
更新单元,用于在创建目标执行协程之后,基于所述协程标识和所述未执行完的任务,对所述目标映射关系集合进行更新。
在一些实施方式中,所述第一处理单元用于:
创建channel队列;
将所述未完成的任务添加至所述channel队列中;
所述目标执行协程从所述channel队列中获取所述未执行完的任务进行处理。
在一实施方式中,所述装置还包括:
第三确定单元,用于当检测到存在新任务需加入所述channel队列时,确定所述新任务的重要等级;
排序单元,用于基于所述新任务的重要等级更新所述channel队列中任务的排序
在一实施方式中,所述装置还包括:
销毁单元,用于将所述未执行完的任务调度给所述目标执行协程处理之后,响应所述销毁指令,销毁所述目标根协程和所述子协程。
第三方面,本申请实施例还提供了一种计算机可读存储介质,所述存储介质中存储有多条指令,所述指令适于由处理器加载以执行上述的任务处理方法。
第四方面,本申请实施例还提供了一种电子设备,包括处理器及存储器,所述处理器与所述存储器电性连接,所述存储器用于存储指令和数据,处理器用于执行上述的任务处理方法。
本申请实施,通过在子协程注册取消监听,当监听到目标根协程的销毁指令时,确定子协程当前未执行完的任务是否可取消。若任务不可取消,则创建目标执行协程,将未执行完的任务通过调度手段在该目标执行协程中执行,从而实现任务的状态提升,提高任务处理效率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的任务处理方法的一流程示意图。
图2是本申请实施例提供的任务处理方法的另一流程示意图。
图3是本申请实施例提供的任务处理装置的一结构示意图。
图4是本申请实施例提供的电子设备的一结构示意图。
图5是本申请实施例提供的电子设备的另一结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例提供一种任务处理方法、装置、存储介质及电子设备。以下将分别进行详细说明。
在一实施例中,提供一种任务处理方法,应用于智能手机、平板电脑、笔记本电脑等电子设备中。参考图1,该任务处理方法的具体流程可以如下:
101、当监听到目标根协程的销毁指令时,确定子协程当前未执行完的任务是否可取消,其中目标根协程和子协程为父子关系。
协程是一种比线程更加轻量级的存在,正如一个进程可以拥有多个线程一样,一个线程可以拥有多个协程。协程不是进程也不是线程,而是一个特殊的函数,这个函数可以在某个地方挂起,并且可以重新在挂起处外继续运行。协程不是被操作系统内核所管理的,而是完全由程序所控制,也就是在用户态执行。协程的切换内容是硬件上下文,切换内存保存在用户自己的变量(用户栈或堆)中。协程的切换过程只有用户态(即没有陷入内核态),不会像线程切换那样消耗资源,因此切换效率高,性能得到大幅度的提升。
本申请实施例将基于Kotlin协程对本方案进行详细阐述。对于安卓(Android)系统,创建一个Kotlin协程有很多种方式。例如,可以通过GlobalScope.launch()或者CoroutineScope(Context).launch()方法创建一个协程作用域,并在协程作用域中执行相应的协程体,以实现协程的创建。其中协程作用域用于提供协程的运行环境、规定协程作用范围,协程体为协程内运作的程序段。
根协程产生的子协程中,如果根协程先取消,那么正常情况下子协程也会随之取消。具体实施时,可以通过接口回调的方式设定监听器,在子协程注册取消监听或其他监听,当根协程被取消时进行回调,以实现监听根协程的运行状态。
本实施例中,可以通过设定标识的方式对任务进行标记,以区分常规任务(即允许取消的任务)和特殊任务(即不可取消的任务)。
102、若不可取消,则创建目标执行协程,其中,目标执行协程的生命周期为应用级别。
其中,该目标执行协程为一个特殊的根协程,用于执行处理单元,提供处理单元执行的协程环境。
具体的,若该未执行完成的任务不可取消,则创建一个全局的根协程作为目标执行协程,以便后续执行上述特殊任务。需要说明的是,本申请实施例中该目标执行协程的生命周期为应用级别,即该目标执行协程在应用程序运行过程中永远不会被销毁。
103、将未执行完的任务调度给目标执行协程处理。
在一实施方式中,在将未执行完的任务调度给目标执行协程处理时,可以包括以下流程:
创建channel队列;
将未完成的任务添加至channel队列中;
目标执行协程从channel队列中获取未执行完的任务进行处理。
具体的,当Channel队列存在未执行完成的任务时,通过调用Channel.sent方法将该任务发送给目标执行协程,目标执协程调用Channel.receive方法接收待处理的任务直接运行即可。由于Channel是并发安全的,不需要额外的并发控制,因此顺序取数据执行即可。
当channel队列中不存在待处理的任务时,基于Channel的挂起机制将其挂起即可,并可以在下一次有待处理任务时取消挂起。
在一实施方式中,当检测到存在新任务需加入channel队列时,可以确定新任务的重要等级,然后基于新任务的重要等级更新channel队列中任务的排序,将重要等级高的任务排序向前调整,将重要等级低的任务排序向后调整,以使重要等级较高的任务可以优先处理,保证其完成度。
在一实施方式中,在将该未执行完的任务调度给目标执行协程处理之后,系统可响应该销毁指令,执行销毁目标根协程及其子协程的操作。
实际应用中,由于协程中可能运行有多个子任务,同一个协程下运行的任务,对应应用相同的协程标识,因此可以运行在同一个执行协程中。基于此,本实施例中,为了减少冗余、节省终端资源,可对执行协程进行复用,即对应同一个协程标识的任务,可以共用一个执行协程。也即,在一实施方式中,在创建目标执行协程之前,还可以包括以下操作:
获取该子协程的协程标识;
确定目标映射关系集合中是否存在于该协程标识匹配的目标历史协程标识,目标映射关系集合包括:历史协程标识和历史任务之间的对应关系;
若是,则基于该目标历史协程标识确定对应的历史执行协程,并将未执行完的任务调度给该历史执行协程处理;
若否,则执行创建目标执行协程的操作。
实际应用中,该目标映射关系集合可以用map集合键值对的形式表示。例如,map集合中用key(键)表示历史协程标识(即协程的标识),value(值)则表示历史任务(即该协程需运行的任务)。协程内部通过map集合保存历史协程标识与历史任务,当根协程生命周期变化时,通过判断Key,然后取出对应的value,调度给相应执行协程(未创建则需要创建)处理即可。
在一实施方式中,在创建目标执行协程之后,还可以基于该协程标识、及该未执行完的任务,对目标映射关系集合进行更新,以便后续相关联协程下的任务,可对该目标执行协程进行复用。
由上可知,本实施例提供的任务处理方法,通过在子协程注册取消监听,当监听到目标根协程的销毁指令时,确定子协程当前未执行完的任务是否可取消。若任务不可取消,则创建目标执行协程,将未执行完的任务通过调度手段在该目标执行协程中执行,从而实现任务的状态提升,提高任务处理效率。
在又一实施例中,还提供一种支持子协程作用域内执行任务状态提升的方法。下面,将以Kotlin协程体系为例,对本申请中的方案进行详细描述。
参考图2,本实施例中,可以在子协程中设定一个监听器,当根协程被取消时将会回调。此时,若子协正在执行的任务是需要继续完成的特殊任务,那么可发送一个分发单元至分发器,分发单元的子协程标识可以是Job.key(即当前子协程的标识,只要满足全局唯一的任意标识即可)。
其中,分发单元为分发的最小单元,本实施例中该分发单元由当前子协程标识和Runnable对象(即需要继续完成的任务)组成。分发器本质是一个map集合,key是子协程标识,value是一个Channel对象。Channel是一个并发安全的队列,用于协程之间通信。由于队列是有一定容量的,当超过容量时再加入任务会执行缓冲区任务,本方案中缓冲区任务是conflated,即合并策略。例如,当发送端发送任务A、任务B、任务C时,而消费端还未消费,则缓冲区只保留最新任务,即任务C。
继续参考图2,分发器进行分发,若分发单元的子协程标识不存在于分发器的key集合中,则新建一个Channel队列作为value。因此,分发器map加入key为子协程标识,value为Channel的元素,同时创建一个执行协程。若分发单元的子协程标识存在分发器的于key集合中,则直接进入下一步,复用先前创建的执行单元执行处理单元即可。
分发器遍历所有key中的value,从value中取出数据。若value(即Channel队列)中存在未执行的处理单元,则通过Channel.sent方法发送该任务给执行协程。若value中不存在需要执行的处理单元,则挂起即可(Channel存在挂起机制,会在下一次有处理单元的时取消挂起)。
需要说明的是,本实施例中执行协程生命周期是应用级别,在应用程序运行过程中都不会取消。执行协程通过Channel.receive方法接收处理单元,直接运行处理单元的任务即可。由于Channel是并发安全的,所以不需要额外的并发控制,顺序取数据执行即可。
由上可知,本实施例提供的任务处理方法,在不破坏协程内部运行结构的前提下,通过在子协程注册取消监听,在满足自定义条件后发送分发单元,内部通过生产者消费者队列实现分发策略,执行协程进行消费,将满足条件的特殊任务的执行权通过调度手段在根协程进行执行,从而实现任务状态的提升。另外,通过将任务集中在执行协程处理的方式,便于任务架构解耦,可兼容当前Kotlin协程的执行。
在本申请又一实施例中,还提供一种任务处理装置。该任务处理装置可以软件或硬件的形式集成在电子设备中,该电子设备具体可以包括手机、平板电脑、笔记本电脑等设备。如图3所示,该任务处理装置300可以包括:第一确定单元301、创建单元302和第一处理单元303,其中:
第一确定单元301,用于当监听到目标根协程的销毁指令时,确定子协程当前未执行完的任务是否可取消,其中所述目标根协程和所述子协程为父子关系;
创建单元302,用于在所述确定单元确定为是时,创建目标执行协程,其中,所述目标执行协程的生命周期为应用级别;
第一处理单元303,用于将未执行完的任务调度给所述目标执行协程处理。
在一实施方式中,任务处理装置300还包括:
获取单元,用于在创建目标执行协程之前,获取所述子协程的协程标识;
第二确定单元,用于确定目标映射关系集合中是否存在于所述协程标识匹配的目标历史协程标识,所述目标映射关系集合包括:历史协程标识和历史任务之间的对应关系;
第二处理单元,用于在所述第二确定单元确定为是时,获取基于所述目标历史协程标识确定对应的历史执行协程,并将所述未执行完的任务调度给所述历史执行协程处理;
所述创建单元302,用于在所述第二确定单元确定为否时,创建目标执行协程。
在一实施方式中,任务处理装置300还包括:
更新单元,用于在创建目标执行协程之后,基于所述协程标识和所述未执行完的任务,对所述目标映射关系集合进行更新。
在一些实施方式中,所述第一处理单元303具体用于:
创建channel队列;
将所述未完成的任务添加至所述channel队列中;
所述目标执行协程从所述channel队列中获取所述未执行完的任务进行处理。
在一实施方式中,任务处理装置300还包括:
第三确定单元,用于当检测到存在新任务需加入所述channel队列时,确定所述新任务的重要等级;
排序单元,用于基于所述新任务的重要等级更新所述channel队列中任务的排序
在一实施方式中,任务处理装置300还包括:
销毁单元,用于将所述未执行完的任务调度给所述目标执行协程处理之后,响应所述销毁指令,销毁所述目标根协程和所述子协程。
由上可知,本申请实施例提供的任务处理装置,通过在子协程注册取消监听,当监听到目标根协程的销毁指令时,确定子协程当前未执行完的任务是否可取消。若任务不可取消,则创建目标执行协程,将未执行完的任务通过调度手段在该目标执行协程中执行,从而实现任务的状态提升,提高任务处理效率。
在本申请又一实施例中还提供一种电子设备,该电子设备可以是智能手机、平板电脑等智能终端。如图4所示,电子设备400包括处理器401和存储器402。其中,处理器401与存储器402电性连接。
处理器401是电子设备400的控制中心,利用各种接口和线路连接整个电子设备的各个部分,通过运行或加载存储在存储器402内的应用,以及调用存储在存储器402内的数据,执行电子设备的各种功能和处理数据,从而对电子设备进行整体监控。
在本实施例中,电子设备400中的处理器401会按照如下的步骤,将一个或一个以上的应用的进程对应的指令加载到存储器402中,并由处理器401来运行存储在存储器402中的应用,从而实现各种功能:
当监听到目标根协程的销毁指令时,确定子协程当前未执行完的任务是否可取消,其中该目标根协程和该子协程为父子关系;
若否,则创建目标执行协程,其中,该目标执行协程的生命周期为应用级别;
将未执行完的任务调度给该目标执行协程处理。
在一实施方式中,在创建目标执行协程之前,处理器401可以执行以下操作:
获取该子协程的协程标识;
确定目标映射关系集合中是否存在于该协程标识匹配的目标历史协程标识,该目标映射关系集合包括:历史协程标识和历史任务之间的对应关系;
若是,则基于所述目标历史协程标识确定对应的历史执行协程,并将该未执行完的任务调度给该历史执行协程处理;
若否,则执行创建目标执行协程的步骤。
在一实施方式中,在创建目标执行协程之后,处理器401可以执行以下操作:
基于该协程标识和该未执行完的任务,对该目标映射关系集合进行更新。
在一实施方式中,在将该未执行完的任务调度给该目标执行协程处理时,处理器401还可以执行以下操作:
创建channel队列;
将该未完成的任务添加至该channel队列中;
该目标执行协程从该channel队列中获取该未执行完的任务进行处理。
在一实施方式中,当检测到存在新任务需加入该channel队列时时,处理器401可以执行以下操作:
通确定该新任务的重要等级;
基于该新任务的重要等级更新该channel队列中任务的排序。
在一实施方式中,在将该未执行完的任务调度给该目标执行协程处理之后,处理器401还可以执行以下操作:
响应该销毁指令,销毁该目标根协程和该子协程。
存储器402可用于存储应用和数据。存储器402存储的应用中包含有可在处理器中执行的指令。应用可以组成各种功能模块。处理器401通过运行存储在存储器402的应用,从而执行各种功能应用以及任务处理。
在一些实施例中,如图5所示,电子设备400还包括:显示屏403、控制电路404、射频电路405、输入单元406、传感器408以及电源409。其中,处理器401分别与显示屏403、控制电路404、射频电路405、输入单元406、摄像头407、传感器408以及电源409电性连接。
显示屏403可用于显示由用户输入的信息或提供给用户的信息以及电子设备的各种图形用户接口,这些图形用户接口可以由图像、文本、图标、视频和其任意组合来构成。
控制电路404与显示屏403电性连接,用于控制显示屏403显示信息。
射频电路405用于收发射频信号,以通过无线通信与电子设备或其他电子设备构建无线通讯,与服务器或其他电子设备之间收发信号。
输入单元406可用于接收输入的数字、字符信息或用户特征信息(例如指纹),以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。其中,输入单元406可以包括指纹识别模组。
摄像头407可用于采集图像信息。其中,该摄像头可以是具有一个镜头的单摄像头,也可以具有两个或多个镜头。
传感器408用于采集外部环境信息。传感器408可以包括环境亮度传感器、加速度传感器、光传感器、运动传感器、以及其他传感器。
电源409用于给电子设备400的各个部件供电。在一些实施例中,电源409可以通过电源管理系统与处理器401逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。
尽管图5中未示出,电子设备400还可以包括扬声器、蓝牙模块等,在此不再赘述。
由上可知,本申请实施例提供的电子设备,通过在子协程注册取消监听,当监听到目标根协程的销毁指令时,确定子协程当前未执行完的任务是否可取消。若任务不可取消,则创建目标执行协程,将未执行完的任务通过调度手段在目标执行协程中执行,从而实现任务的状态提升,提高任务处理效率。
在一些实施例中,还提供了一种计算机可读存储介质,该存储介质中存储有多条指令,该指令适于由处理器加载以执行上述任一任务处理方法。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,RandomAccess Memory)、磁盘或光盘等。
以上对本申请实施例所提供的任务处理方法、装置、存储介质及电子设备进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (10)
1.一种任务处理方法,其特征在于,包括:
当监听到目标根协程的销毁指令时,确定子协程当前未执行完的任务是否可取消,其中所述目标根协程和所述子协程为父子关系;
若否,则创建目标执行协程,其中,所述目标执行协程的生命周期为应用级别;
将未执行完的任务调度给所述目标执行协程处理。
2.根据权利要求1所述的任务处理方法,其特征在于,在创建目标执行协程之前,还包括:
获取所述子协程的协程标识;
确定目标映射关系集合中是否存在于所述协程标识匹配的目标历史协程标识,所述目标映射关系集合包括:历史协程标识和历史任务之间的对应关系;
若是,则基于所述目标历史协程标识确定对应的历史执行协程,并将所述未执行完的任务调度给所述历史执行协程处理;
若否,则执行创建目标执行协程的步骤。
3.根据权利要求2所述的任务处理方法,其特征在于,在创建目标执行协程之后,还包括:
基于所述协程标识和所述未执行完的任务,对所述目标映射关系集合进行更新。
4.根据权利要求1所述的任务处理方法,其特征在于,将所述未执行完的任务调度给所述目标执行协程处理,包括:
创建channel队列;
将所述未完成的任务添加至所述channel队列中;
所述目标执行协程从所述channel队列中获取所述未执行完的任务进行处理。
5.根据权利要求4所述的任务处理方法,其特征在于,还包括:
当检测到存在新任务需加入所述channel队列时,确定所述新任务的重要等级;
基于所述新任务的重要等级更新所述channel队列中任务的排序。
6.根据权利要求1所述的任务处理方法,其特征在于,在将所述未执行完的任务调度给所述目标执行协程处理之后,还包括:
响应所述销毁指令,销毁所述目标根协程和所述子协程。
7.一种任务处理装置,其特征在于,包括:
第一确定单元,用于当监听到目标根协程的销毁指令时,确定子协程当前未执行完的任务是否可取消,其中所述目标根协程和所述子协程为父子关系;
创建单元,用于在所述确定单元确定为是时,创建目标执行协程,其中,所述目标执行协程的生命周期为应用级别;
第一处理单元,用于将未执行完的任务调度给所述目标执行协程处理。
8.根据权利要求7所述的任务处理装置,其特征在于,还包括:
获取单元,用于在创建目标执行协程之前,获取所述子协程的协程标识;
第二确定单元,用于确定目标映射关系集合中是否存在于所述协程标识匹配的目标历史协程标识,所述目标映射关系集合包括:历史协程标识和历史任务之间的对应关系;
第二处理单元,用于在所述第二确定单元确定为是时,获取基于所述目标历史协程标识确定对应的历史执行协程,并将所述未执行完的任务调度给所述历史执行协程处理;
所述创建单元,用于在所述第二确定单元确定为否时,创建目标执行协程。
9.一种计算机可读存储介质,其特征在于,所述存储介质中存储有多条指令,所述指令适于由处理器加载以执行权利要求1-6任一项所述的任务处理方法。
10.一种电子设备,其特征在于,包括处理器及存储器,所述处理器与所述存储器电性连接,所述存储器用于存储指令和数据;所述处理器用于执行权利要求1-6任一项所述的任务处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210446275.2A CN114995970A (zh) | 2022-04-26 | 2022-04-26 | 任务处理方法、装置、存储介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210446275.2A CN114995970A (zh) | 2022-04-26 | 2022-04-26 | 任务处理方法、装置、存储介质及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114995970A true CN114995970A (zh) | 2022-09-02 |
Family
ID=83024829
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210446275.2A Pending CN114995970A (zh) | 2022-04-26 | 2022-04-26 | 任务处理方法、装置、存储介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114995970A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115185985A (zh) * | 2022-09-07 | 2022-10-14 | 北京镜舟科技有限公司 | 数据排序方法、装置、电子设备及存储介质 |
-
2022
- 2022-04-26 CN CN202210446275.2A patent/CN114995970A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115185985A (zh) * | 2022-09-07 | 2022-10-14 | 北京镜舟科技有限公司 | 数据排序方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10467025B2 (en) | Managing delivery of code and dependent data using application containers | |
US10628238B2 (en) | Decoupling background work and foreground work | |
EP2751674A1 (en) | Event aggregation for background work execution | |
CN111831437B (zh) | 设备管理方法、装置、存储介质及电子设备 | |
CN111831414A (zh) | 线程迁移方法、装置、存储介质及电子设备 | |
CN113495780A (zh) | 任务调度方法、装置、存储介质及电子设备 | |
CN115469937A (zh) | 插件运行方法、装置、电子设备及存储介质 | |
CN114237743B (zh) | 界面加载方法、装置、电子设备和存储介质 | |
CN114327087A (zh) | 输入事件处理方法、装置、电子设备和存储介质 | |
CN114995970A (zh) | 任务处理方法、装置、存储介质及电子设备 | |
CN113495787A (zh) | 资源分配方法、装置、存储介质及电子设备 | |
US10599444B2 (en) | Extensible input stack for processing input device data | |
CN111831436B (zh) | Io请求的调度方法、装置、存储介质及电子设备 | |
CN113535368B (zh) | 任务处理方法、装置和电子设备 | |
US20190213015A1 (en) | Extensible input stack for processing input device data | |
CN115630806A (zh) | 一种任务调度方法、装置、计算机设备及存储介质 | |
CN111831412B (zh) | 中断处理方法、装置、存储介质及电子设备 | |
CN115373865A (zh) | 一种并发线程管理方法、装置、电子设备和存储介质 | |
CN114968010A (zh) | 协处理芯片的启动方法、装置、存储介质及电子装置 | |
CN114879962B (zh) | 一种实现批量系统调用的方法及装置 | |
CN114168284A (zh) | 协程运行方法、装置、存储介质及电子设备 | |
CN113961585A (zh) | 数据处理方法、装置、电子设备和存储介质 | |
CN116932029A (zh) | 一种组件库管理方法、装置、智能设备及存储介质 | |
CN115904723A (zh) | 应用程序运行方法、装置、电子设备和存储介质 | |
CN116414577A (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 |