CN111831410A - 任务处理方法、装置、存储介质及电子设备 - Google Patents
任务处理方法、装置、存储介质及电子设备 Download PDFInfo
- Publication number
- CN111831410A CN111831410A CN202010627101.7A CN202010627101A CN111831410A CN 111831410 A CN111831410 A CN 111831410A CN 202010627101 A CN202010627101 A CN 202010627101A CN 111831410 A CN111831410 A CN 111831410A
- Authority
- CN
- China
- Prior art keywords
- task
- processed
- target
- queue
- tasks
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/48—Indexing scheme relating to G06F9/48
- G06F2209/484—Precedence
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5011—Pool
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5018—Thread allocation
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是本申请实施例提供的工作队列采用的机制的拓扑结构示意图。
图5是本申请实施例提供的任务处理方法的场景示意图。
图6是本申请实施例提供的任务处理装置的结构示意图。
图7是本申请实施例提供的电子设备的结构示意图。
图8是本申请实施例提供的电子设备的另一结构示意图。
具体实施方式
请参照图示,其中相同的组件符号代表相同的组件,本申请的原理是以实施在一适当的运算环境中来举例说明。以下的说明是基于所例示的本申请具体实施例,其不应被视为限制本申请未在此详述的其它具体实施例。
下面先对相关技术中的工作队列(Workqueue)的机制进行介绍。
随着智能电子设备的不断发展,电子设备中所使用的内核版本也在不断地更新。内核是一个操作系统的核心,是操作系统最基本的部分。以安卓(android)操作系统为例,Linux内核作为安卓操作系统的核心,提供进程管理、内存管理、文件管理、驱动管理、网络管理等服务,是电子设备各个模块的管理者(manager),也是为用户使用提供服务的服务者(server)。内核可以并行地执行任务,因此需要多个执行线程(kernel thread),一个线程可以处理特定的一个事务,因此内核线程可以看作内核的分身。内核分身即使进入了阻塞状态,也不会影响到其他内核分身的执行。
工作队列(Workqueue)是内核里面很重要的一个机制,特别是内核驱动,一般的较小型的任务(work)都不会自己单独创建一个线程来处理,而是放在工作队列中处理。工作队列的主要工作就是用进程上下文来处理内核中大量的任务(work)。以安卓操作系统为例,目前较新的工作队列的版本为并发可管理工作队列(Concurrency ManagedWorkqueue,CMWQ)。
关于工作队列有如下几个基本概念:任务(work)、工作队列(workqueue)、线程(worker)、线程池(worker pool)。其中,工作队列可以认为是需要执行的任务的集合。一般来说,工作队列和任务是一对多的关系,即一个工作队列中有多个任务。线程即对应内核线程(Thread),线程池可以认为是线程的集合。一般来说,线程池和线程也是一对多的关系,即一个线程池中有多个线程。
例如,以安卓操作系统为例,请一并参阅图1,图1是安卓系统原生的工作队列机制的中per-cpu结构的拓扑结构示意图。
如图1所示,per-cpu结构是针对每个CPU核都会绑定(bound)两个线程池,这两个线程池分别为普通优先级线程池(normal线程池)和高优先级线程池(high prio线程池)。其中,普通优先级对应于nice值等于0,高优先级对应于nice值等于-20。而且,每个线程池里的线程只能锁定在其所绑定的cpu核上。每个线程池包含的线程数目也不一样。需要说明的是,例如电子设备的CPU为8核CPU,那么per-cpu结构的工作队列对应的CPU核的个数也是8个,即从CPU 0、CPU 1、CPU 2,……,CPU 7,即此时n=7。
在本申请实施例中,图1中各个CPU核所对应的普通优先级线程池(normal线程池)和高优先级线程池(high prio线程池)属于电子设备的系统的原生线程池。每一线程池均可以有对应的任务(work)队列和线程(worker)队列。任务队列用于存放需要执行的任务,即需要执行的任务构成任务队列,而用于执行各项任务的线程构成线程队列。
可以理解的是,本申请实施例的执行主体可以是诸如智能手机或平板电脑等的电子设备。
请参阅图2,图2是本申请实施例提供的任务处理方法的流程示意图。该任务处理方法可以应用于电子设备中,该电子设备配置有目标任务队列,该目标任务队列可以专门用于存放第一类型的任务,该第一类型的任务至少包括与用户交互事件关联的任务。
本申请实施例提供的任务处理方法的流程可以包括:
101、获取待处理任务。
随着技术的发展,电子设备所能实现的功能越来越多。基于此,用户会在电子设备中安装许多应用程序用来实现各种各样的功能。比如,用户可以在电子设备中安装游戏类应用、在线视频播放类应用、音频播放类应用等等。这些应用可以满足用户的娱乐和学习等需求。然而,随着电子设备中安装的应用程序越来越多,电子设备的响应速度却变得较慢。
在本申请实施例中,比如,电子设备可以先获取待处理任务。比如,电子设备可以先从工作队列中获取待处理任务。
在获取到待处理任务后,电子设备可以检测该待处理任务是否为第一类型的任务。
在本实施例中,第一类型的任务可以是需要优先执行的任务,例如第一类型的任务可以是和用户体验紧密相关的任务。例如,本实施例中第一类型的任务至少可以包括与用户交互事件关联的任务。由于用户交互事件的响应速度决定着是否会在用户交互事件中产生用户可感知的卡顿,这和用户体验紧密相关,因此与用户交互事件关联的任务可以是需要优先执行的任务。
如果检测到待处理任务不是第一类型的任务,那么电子设备可以执行其它操作,从而在后续完成该非第一类型的待处理任务。
如果检测到待处理任务是第一类型的任务,那么可以进入102的流程。
102、若检测到待处理任务为第一类型的任务,则将该待处理任务添加到目标任务队列中。
比如,电子设备检测出获取到的待处理任务是第一类型的任务,那么电子设备可以将该第一类型的待处理任务添加到目标任务队列中。如前所述,该目标任务队列可以是专门用于存放第一类型的任务的队列。
103、控制电子设备的系统为目标任务队列中的待处理任务分配线程。
104、利用分配的线程优先执行目标任务队列中的待处理任务。
比如,103和104可以包括:
在将属于第一类型的待处理任务添加到目标任务队列中后,电子设备可以控制其操作系统为该目标任务队列中的该待处理任务分配线程,并利用分配的线程优先执行该目标任务队列中的该待处理任务。
例如,由于GPU(Graphics Processing Unit,图形处理器)驱动向安卓上层发送画面绘制完成的信息这一任务和用户体验紧密相关,因此电子设备预先将该任务设置成了第一类型的任务。
例如,101的流程中电子设备获取到的待处理任务正是GPU驱动向安卓上层发送画面绘制完成的信息。那么,电子设备可以检测出待处理任务为第一类型的任务,此时电子设备可以将该待处理任务添加到目标任务队列中,并为该待处理任务分配线程A,以及优先执行线程A从而实现优先执行该待处理任务。即,电子设备的系统可以将系统资源优先分配给该线程A,以优先执行属于第一类型的待处理任务。
可以理解的是,本申请实施例中,电子设备可以将获取到的属于第一类型的待处理任务添加到目标任务队列中,其中该目标任务队列可以专门用于存放第一类型的任务,该第一类型的任务至少包括与用户交互事件关联的任务。之后,电子设备可以为目标任务队列中的该待处理任务分配线程,并利用该分配的线程优先执行该待处理任务。由于第一类型的任务是否能够流畅运行决定着是否会在用户交互事件中产生用户可感知的卡顿,因此本申请实施例通过优先执行第一类型的任务的方式,提高了第一类型的任务的响应速度,从而提高了系统的响应速度,减少用户可感知的卡顿,提升了用户体验。
请参阅图3,图3是本申请实施例提供的任务处理方法的另一流程示意图。该任务处理方法可以应用于电子设备中,该电子设备的工作队列采用的工作机制对应的拓扑结构包括per-cpu结构,为每一CPU核的每一线程池对应配置至少一个目标任务队列,如图4所示。该目标任务队列可以专门用于存放第一类型的任务,该第一类型的任务至少包括与用户交互事件关联的任务。由于与用户交互事件关联的任务和用户体验紧密相关,因此本实施例中也可以将第一类型的任务记为ux(User Experience)任务。那么,用于存放ux任务的目标任务队列可以记为ux任务队列。
本申请实施例提供的任务处理方法的流程可以包括:
201、从per-cpu结构对应的工作队列中获取待处理任务。
比如,电子设备可以先从per-cpu结构对应的工作队列中获取待处理任务。
在从工作队列中获取到待处理任务后,电子设备可以检测该待处理任务是否为第一类型的任务。
如果检测到待处理任务不是第一类型的任务,那么电子设备可以从某一个CPU核对应的线程池中分配线程给该待处理任务,并利用该分配的线程来执行该待处理任务。
例如,在本实施例中,对应于每一CPU核的每一线程池还可以对应配置至少一个非目标任务队列。电子设备可以将第一类型的任务之外的任务记为第二类型的任务。如果检测到待处理任务为第二类型的任务,那么电子设备可以从多个CPU核中确定出一个目标CPU核,并将属于第二类型的待处理任务推送(push)至该目标CPU核。之后,电子设备可以从目标CPU核对应的线程池中确定出目标线程池,并将属于第二类型的待处理任务添加到该目标线程池对应的非目标任务队列中。之后,电子设备可以为处于非目标任务队列中的待处理任务分配线程,并利用分配的线程在后续执行该待处理任务。
例如,如图4所示,电子设备可以将CPU 0确定为目标CPU核,并将第二类型的待处理任务推送到CPU 0上,再从该CPU 0对应的线程池中确定出目标线程池。例如电子设备将CPU 0对应的普通优先级线程池确定为目标线程池。之后,电子设备可以将第二类型的待处理任务添加到CPU 0的普通优先级线程池对应的非目标任务队列中。之后,电子设备从CPU0的普通优先级线程池中分配一个普通线程给该第二类型的待处理任务,并由该分配的线程来执行该待处理任务。需要说明的是,图4中普通线程构成的队列记为普通线程队列。
如果检测到待处理任务是第一类型的任务,那么可以进入202的流程。
202、若检测到待处理任务为第一类型的任务,则从电子设备具备的多个CPU核中确定出目标CPU核。
203、将待处理任务推送至目标CPU核。
204、从目标CPU核对应的线程池中确定出目标线程池。
205、将待处理任务添加到目标线程池对应的目标任务队列中。
比如,202、203、204、205可以包括:
电子设备检测到待处理任务是第一类型的任务,那么电子设备可以从其具备的多个CPU核中确定出一个目标CPU核,并将待处理任务推送(push)至该目标CPU核。之后,电子设备可以从目标CPU核对应的线程池中确定出一个目标线程池,并将第一类型的待处理任务添加到该目标线程池对应的目标任务队列中。
例如,电子设备将属于第一类型的待处理任务推送至CPU 0,之后电子设备可以从CPU 0对应的普通优先级线程池和高优先级线程池中确定出一个目标线程池,并将该第一类型的待处理任务添加到该目标线程池对应的目标任务队列(ux任务队列)中。
又如,电子设备将属于第一类型的待处理任务推送至CPU 1,之后电子设备可以从CPU 1对应的普通优先级线程池和高优先级线程池中确定出一个目标线程池,并将该第一类型的待处理任务添加到该目标线程池对应的目标任务队列(ux任务队列)中。
在一些实施方式中,电子设备可以将第一类型的待处理任务随机地推送至某个CPU核。或者,电子设备也可以将第一类型的待处理任务推送至较为空闲的某个CPU核,例如电子设备可以获取当前各个CPU核的正在执行的线程数量,并将第一类型的待处理任务推送至正在执行的线程数量最少的CPU核。
在一些实施方式中,在将第一类型的待处理任务推送至某个CPU核之后,电子设备可以随机地将该CPU核对应的线程池中的一个确定为目标线程池。例如,在将第一类型的待处理任务推送至CPU 1之后,电子设备可以将CPU 1对应的普通优先级线程池和高优先级线程池中的一个随机地确定为目标线程池。
206、控制电子设备的系统为目标任务队列中的待处理任务分配线程。
207、利用分配的线程优先执行目标任务队列中的待处理任务。
比如,206、207可以包括:
在将第一类型的待处理任务添加到目标线程池对应的目标任务队列后,电子设备可以控制其操作系统从该目标线程池中分配线程给该待处理任务,并利用该分配的线程来优先执行该待处理任务。即,电子设备的系统可以将系统资源优先分配给该线程,从而优先执行属于第一类型的该待处理任务。
可以理解的是,被分配给目标任务队列中的待处理任务的线程可以记为ux线程,由ux线程可以沟通ux线程队列,如图4所示。
因此,在本申请实施例中,当获取到属于第一类型的任务(ux任务)时,电子设备可以将该第一类型的任务分配到目标任务队列(ux任务队列)中,并分配线程来优先执行该第一类型的任务,从而使第一类型的任务能够被系统优先执行,提升了第一类型的任务的响应速度,提高了用户体验。
在一种实施方式中,206中控制电子设备的系统为目标任务队列中的待处理任务分配线程的流程,可以包括:
控制电子设备的系统创建新线程,并将创建得到的新线程分配给目标任务队列中的待处理任务。
比如,每当电子设备检测到目标任务队列(ux任务队列)中有需要执行的第一类型的任务时,电子设备可以在目标线程池中创建一个新的线程,并将创建得到的新线程分配给处于目标任务队列中的待处理任务。
也即,只要检测到有ux任务,那么电子设备就可以新创建一个线程用来优先执行该ux任务。可以理解的是,这种方式可以更快地响应ux任务,从而提高系统对第一类型的任务的响应速度,提高用户体验。
在另一种实施方式中,206中控制电子设备的系统为目标任务队列中的待处理任务分配线程的流程,可以包括:
检测目标线程池已创建的线程中是否有处于空闲状态的线程;
若目标线程池已创建的线程中存在处于空闲状态的线程,则将该空闲状态的线程分配给目标任务队列中的待处理任务。
比如,每当电子设备检测到目标任务队列(ux任务队列)中有需要执行的第一类型的任务时,电子设备可以检测该目标任务队列对应的目标线程池中是否有已创建并处于空闲状态的线程。如果该目标任务队列对应的目标线程池中有已创建的、处于空闲状态的线程,那么电子设备可以将该空闲状态的线程分配给目标任务队列中的该待处理任务。
可以理解的是,这种实施方式可以有效利用起空闲状态的线程,从而减小系统开销。
在本申请实施例中,电子设备可以通过如下方式来检测待处理任务是否为第一类型的任务:
每当任务被创建后,识别该任务是否为与用户交互事件关联的任务;
若该任务为与用户交互事件关联的任务,则为该任务添加预设标签;
那么,检测待处理任务是否为第一类型的任务,可以包括:检测待处理任务是否具有预设标签,若待处理任务具有预设标签则确定出待处理任务为第一类型的任务。
比如,每当一个任务被创建后,电子设备可以先识别该任务是否为与用户交互事件关联的任务。如果识别到该任务是与用户交互事件关联的任务,那么电子设备可以为该任务添加一个预设标签(例如记为ux标签)。基于此,当需要检测某一待处理任务是否为第一类型的任务时,电子设备只需检测该待处理任务是否具有预设标签即可。如果待处理任务具有预设标签,那么可以确定出该待处理任务为第一类型的任务。
在一种实施方式中,电子设备可以预先通过对应用程序的运行过程进行的测试分析,获得应用程序中与用户交互事件关联的任务,并获取这些任务的标识。然后,电子设备可以将这些与用户交互事件关联的任务的标识记录到一个文件中,并将该文件确定为预设文件。
基于此,当需要识别某一任务是否为与用户交互事件关联的任务时,电子设备可以获取预设文件,该预设文件中记载有与用户交互事件关联的任务的标识;获取该某一任务的标识,并在预设文件中查找是否存在该某一任务的标识;若预设文件中存在该某一任务的标识,则确定出该某一任务是与用户交互事件关联的任务。
通过上述方式,电子设备可以利用添加标签的方式来区别第一类型的任务和第二类型的任务,并通过识别是否具有预设标签的方式来识别待处理任务是否为第一类型的任务,该实现方式简单、有效。
请参阅图5,图5为本申请实施例提供的任务处理方法的场景示意图。
比如,如图5所示,用户利用在线视频播放应用播放视频文件,由于视频播放任务和用户体验紧密相关,如果响应较慢的话容易引起用户可感知的卡顿。因此,电子设备预先将在线视频播放应用创建的任务均确定为第一类型的任务。
例如,此时电子设备从系统的工作队列中获取到在线视频播放应用创建的任务B,电子设备检测到该任务B为第一类型的任务。在这种情况下,电子设备可以将该任务B推送至CPU 0。在将任务B推送至CPU 0后,电子设备可以将CPU 0的高优先级线程池确定为目标线程池。之后,电子设备可以将任务B添加到CPU 0的高优先级线程池对应的目标任务队列(ux任务队列)。
之后,电子设备可以在CPU 0的高优先级线程池中创建一个新的线程C,并将该新线程C分配给任务B。电子设备可以将系统资源优先分配给线程C,从而优先执行任务B。可以理解的是,由于线程C执行的是任务B,因此线程C可以记为ux线程,线程C属于CPU 0的高优先级线程池对应的ux线程队列。
请参阅图6,图6为本申请实施例提供的任务处理装置的结构示意图。所述任务处理装置应用于电子设备,所述电子设备配置有目标任务队列,所述目标任务队列用于存放第一类型的任务,所述第一类型的任务至少包括与用户交互事件关联的任务。任务处理装置300可以包括:
获取模块301,用于获取待处理任务;
处理模块302,用于若检测到所述待处理任务为所述第一类型的任务,则将所述待处理任务添加到所述目标任务队列中;
分配模块303,用于控制所述电子设备的系统为所述目标任务队列中的所述待处理任务分配线程;
执行模块304,用于利用分配的线程优先执行所述待处理任务。
在一种实施方式中,所述电子设备的工作队列采用的工作机制对应的拓扑结构包括per-cpu结构,为每一CPU核的每一线程池对应配置至少一个目标任务队列;
所述获取模块301可以用于:从所述per-cpu结构对应的工作队列中获取待处理任务;
所述处理模块302用于:若检测到所述待处理任务为所述第一类型的任务,则从所述电子设备具备的多个CPU核中确定出目标CPU核;将所述待处理任务推送至所述目标CPU核;从所述目标CPU核对应的线程池中确定出目标线程池;将所述待处理任务添加到所述目标线程池对应的目标任务队列中。
在一种实施方式中,所述分配模块303用于:控制所述电子设备的系统创建新线程,并将创建得到的新线程分配给所述目标任务队列中的所述待处理任务。
在另一种实施方式中,所述分配模块303可以用于:检测所述目标线程池已创建的线程中是否有处于空闲状态的线程;若所述目标线程池已创建的线程中存在处于空闲状态的线程,则将所述空闲状态的线程分配给所述目标任务队列中的所述待处理任务。
在一种实施方式中,所述获取模块301还可以用于:每当任务被创建后,识别所述任务是否为与用户交互事件关联的任务;若所述任务为与用户交互事件关联的任务,则为所述任务添加预设标签;检测所述待处理任务是否具有预设标签,若所述待处理任务具有所述预设标签则确定出所述待处理任务为所述第一类型的任务。
在一种实施方式中,所述获取模块301还可以用于:获取预设文件,所述预设文件中记载有与用户交互事件关联的任务的标识;获取所述任务的标识,并在所述预设文件中查找是否存在所述任务的标识;若所述预设文件中存在所述任务的标识,则确定出所述任务是与用户交互事件关联的任务。
在一种实施方式中,对应于每一CPU核的每一线程池还对应配置至少一个非目标任务队列;所述执行模块304还可以用于:若检测到所述待处理任务为第二类型的任务,则从所述电子设备具备的多个CPU核中确定出目标CPU核,所述第二类型的任务为除所述第一类型的任务之外的任务;将所述待处理任务推送至所述目标CPU核;从所述目标CPU核对应的线程池中确定出目标线程池;将所述待处理任务添加到所述目标线程池的非目标任务队列中;为处于非目标任务队列中的所述待处理任务分配线程,并利用分配的线程执行所述待处理任务。
本申请实施例提供一种计算机可读的存储介质,其上存储有计算机程序,当所述计算机程序在计算机上执行时,使得所述计算机执行如本实施例提供的任务处理方法中的流程。
本申请实施例还提供一种电子设备,包括存储器,处理器,所述处理器通过调用所述存储器中存储的计算机程序,用于执行本实施例提供的任务处理方法中的流程。
例如,上述电子设备可以是诸如平板电脑或者智能手机等移动终端。请参阅图7,图7为本申请实施例提供的电子设备的结构示意图。
该电子设备400可以包括触摸显示屏401、存储器402、处理器403等部件。本领域技术人员可以理解,图7中示出的电子设备结构并不构成对电子设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
触摸显示屏401可以用于显示文字、图像等信息,还可以接收用户的触摸操作。触摸显示屏401是电子设备与用户进行交互的一种重要载体。
存储器402可用于存储应用程序和数据。存储器402存储的应用程序中包含有可执行代码。应用程序可以组成各种功能模块。处理器403通过运行存储在存储器402的应用程序,从而执行各种功能应用以及数据处理。
处理器403是电子设备的控制中心,利用各种接口和线路连接整个电子设备的各个部分,通过运行或执行存储在存储器402内的应用程序,以及调用存储在存储器402内的数据,执行电子设备的各种功能和处理数据,从而对电子设备进行整体监控。
在本实施例中,电子设备配置有目标任务队列,所述目标任务队列用于存放第一类型的任务,所述第一类型的任务至少包括与用户交互事件关联的任务。电子设备中的处理器403会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行代码加载到存储器402中,并由处理器403来运行存储在存储器402中的应用程序,从而执行:
获取待处理任务;
若检测到所述待处理任务为所述第一类型的任务,则将所述待处理任务添加到所述目标任务队列中;
控制所述电子设备的系统为所述目标任务队列中的所述待处理任务分配线程;
利用分配的线程优先执行所述目标任务队列中的所述待处理任务。
请参阅图8,电子设备400可以包括传感器401、存储器402、处理器403、电池404、麦克风405、扬声器406等部件。
触摸显示屏401可以用于显示文字、图像等信息,还可以接收用户的触摸操作。触摸显示屏401是电子设备与用户进行交互的一种重要载体。
存储器402可用于存储应用程序和数据。存储器402存储的应用程序中包含有可执行代码。应用程序可以组成各种功能模块。处理器403通过运行存储在存储器402的应用程序,从而执行各种功能应用以及数据处理。
处理器403是电子设备的控制中心,利用各种接口和线路连接整个电子设备的各个部分,通过运行或执行存储在存储器402内的应用程序,以及调用存储在存储器402内的数据,执行电子设备的各种功能和处理数据,从而对电子设备进行整体监控。
电池404可以为电子设备的各个部件和模块的正常运行提供电力支持。
麦克风405可用于采集周围环境中的声音信号,例如麦克风405可以用于采集用户发出的语音信息。
扬声器406可以用于播放声音信号。
在本实施例中,电子设备配置有目标任务队列,所述目标任务队列用于存放第一类型的任务,所述第一类型的任务至少包括与用户交互事件关联的任务。电子设备中的处理器403会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行代码加载到存储器402中,并由处理器403来运行存储在存储器402中的应用程序,从而执行:
获取待处理任务;
若检测到所述待处理任务为所述第一类型的任务,则将所述待处理任务添加到所述目标任务队列中;
控制所述电子设备的系统为所述目标任务队列中的所述待处理任务分配线程;
利用分配的线程优先执行所述目标任务队列中的所述待处理任务。
在一种实施方式中,所述电子设备的工作队列采用的工作机制对应的拓扑结构包括per-cpu结构,为每一CPU核的每一线程池对应配置至少一个目标任务队列;
那么,处理器403执行所述获取待处理任务时,可以执行:从所述per-cpu结构对应的工作队列中获取待处理任务;
处理器403执行所述若检测到所述待处理任务为所述第一类型的任务,则将所述待处理任务添加到所述目标任务队列中时,可以执行:若检测到所述待处理任务为所述第一类型的任务,则从所述电子设备具备的多个CPU核中确定出目标CPU核;将所述待处理任务推送至所述目标CPU核;从所述目标CPU核对应的线程池中确定出目标线程池;将所述待处理任务添加到所述目标线程池对应的目标任务队列中。
在一种实施方式中,处理器403执行所述控制所述电子设备的系统为所述目标任务队列中的所述待处理任务分配线程时,可以执行:控制所述电子设备的系统创建新线程,并将创建得到的新线程分配给所述目标任务队列中的所述待处理任务。
在另一种实施方式中,处理器403执行所述控制所述电子设备的系统为所述目标任务队列中的所述待处理任务分配线程时,可以执行:检测所述目标线程池已创建的线程中是否有处于空闲状态的线程;若所述目标线程池已创建的线程中存在处于空闲状态的线程,则将所述空闲状态的线程分配给所述目标任务队列中的所述待处理任务。
在一种实施方式中,处理器403还可以执行:每当任务被创建后,识别所述任务是否为与用户交互事件关联的任务;若所述任务为与用户交互事件关联的任务,则为所述任务添加预设标签;检测所述待处理任务是否具有预设标签,若所述待处理任务具有所述预设标签则确定出所述待处理任务为所述第一类型的任务。
在一种实施方式中,处理器403还可以执行:获取预设文件,所述预设文件中记载有与用户交互事件关联的任务的标识;
那么,处理器403执行所述识别所述任务是否为与用户交互事件关联的任务时,可以执行:获取所述任务的标识,并在所述预设文件中查找是否存在所述任务的标识;若所述预设文件中存在所述任务的标识,则确定出所述任务是与用户交互事件关联的任务。
在一种实施方式中,对应于每一CPU核的每一线程池还对应配置至少一个非目标任务队列;处理器403还可以执行:若检测到所述待处理任务为第二类型的任务,则从所述电子设备具备的多个CPU核中确定出目标CPU核,所述第二类型的任务为除所述第一类型的任务之外的任务;将所述待处理任务推送至所述目标CPU核;从所述目标CPU核对应的线程池中确定出目标线程池;将所述待处理任务添加到所述目标线程池的非目标任务队列中;为处于非目标任务队列中的所述待处理任务分配线程,并利用分配的线程执行所述待处理任务。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见上文针对任务处理方法的详细描述,此处不再赘述。
本申请实施例提供的所述任务处理装置与上文实施例中的任务处理方法属于同一构思,在所述任务处理装置上可以运行所述任务处理方法实施例中提供的任一方法,其具体实现过程详见所述任务处理方法实施例,此处不再赘述。
需要说明的是,对本申请实施例所述任务处理方法而言,本领域普通技术人员可以理解实现本申请实施例所述任务处理方法的全部或部分流程,是可以通过计算机程序来控制相关的硬件来完成,所述计算机程序可存储于一计算机可读取存储介质中,如存储在存储器中,并被至少一个处理器执行,在执行过程中可包括如所述任务处理方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)等。
对本申请实施例的所述任务处理装置而言,其各功能模块可以集成在一个处理芯片中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中,所述存储介质譬如为只读存储器,磁盘或光盘等。
以上对本申请实施例所提供的一种任务处理方法、装置、存储介质以及电子设备进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (10)
1.一种任务处理方法,应用于电子设备,其特征在于,所述电子设备配置有目标任务队列,所述目标任务队列用于存放第一类型的任务,所述第一类型的任务至少包括与用户交互事件关联的任务,所述方法包括:
获取待处理任务;
若检测到所述待处理任务为所述第一类型的任务,则将所述待处理任务添加到所述目标任务队列中;
控制所述电子设备的系统为所述目标任务队列中的所述待处理任务分配线程;
利用分配的线程优先执行所述目标任务队列中的所述待处理任务。
2.根据权利要求1所述的任务处理方法,其特征在于,所述电子设备的工作队列采用的工作机制对应的拓扑结构包括per-cpu结构,为每一CPU核的每一线程池对应配置至少一个目标任务队列;
所述获取待处理任务,包括:从所述per-cpu结构对应的工作队列中获取待处理任务;
所述若检测到所述待处理任务为所述第一类型的任务,则将所述待处理任务添加到所述目标任务队列中,包括:若检测到所述待处理任务为所述第一类型的任务,则从所述电子设备具备的多个CPU核中确定出目标CPU核;将所述待处理任务推送至所述目标CPU核;从所述目标CPU核对应的线程池中确定出目标线程池;将所述待处理任务添加到所述目标线程池对应的目标任务队列中。
3.根据权利要求2所述的任务处理方法,其特征在于,所述控制所述电子设备的系统为所述目标任务队列中的所述待处理任务分配线程,包括:
控制所述电子设备的系统创建新线程,并将创建得到的新线程分配给所述目标任务队列中的所述待处理任务。
4.根据权利要求2所述的任务处理方法,其特征在于,所述控制所述电子设备的系统为所述目标任务队列中的所述待处理任务分配线程,包括:
检测所述目标线程池已创建的线程中是否有处于空闲状态的线程;
若所述目标线程池已创建的线程中存在处于空闲状态的线程,则将所述空闲状态的线程分配给所述目标任务队列中的所述待处理任务。
5.根据权利要求1所述的任务处理方法,其特征在于,所述方法还包括:
每当任务被创建后,识别所述任务是否为与用户交互事件关联的任务;
若所述任务为与用户交互事件关联的任务,则为所述任务添加预设标签;
检测所述待处理任务是否具有预设标签,若所述待处理任务具有所述预设标签则确定出所述待处理任务为所述第一类型的任务。
6.根据权利要求5所述的任务处理方法,其特征在于,所述方法还包括:
获取预设文件,所述预设文件中记载有与用户交互事件关联的任务的标识;
所述识别所述任务是否为与用户交互事件关联的任务,包括:获取所述任务的标识,并在所述预设文件中查找是否存在所述任务的标识;若所述预设文件中存在所述任务的标识,则确定出所述任务是与用户交互事件关联的任务。
7.根据权利要求2所述的任务处理方法,其特征在于,对应于每一CPU核的每一线程池还对应配置至少一个非目标任务队列;所述方法还包括:
若检测到所述待处理任务为第二类型的任务,则从所述电子设备具备的多个CPU核中确定出目标CPU核,所述第二类型的任务为除所述第一类型的任务之外的任务;
将所述待处理任务推送至所述目标CPU核;
从所述目标CPU核对应的线程池中确定出目标线程池;
将所述待处理任务添加到所述目标线程池对应的非目标任务队列中;
为处于非目标任务队列中的所述待处理任务分配线程,并利用分配的线程执行所述待处理任务。
8.一种任务处理装置,应用于电子设备,其特征在于,所述电子设备配置有目标任务队列,所述目标任务队列用于存放第一类型的任务,所述第一类型的任务至少包括与用户交互事件关联的任务,所述装置包括:
获取模块,用于获取待处理任务;
处理模块,用于若检测到所述待处理任务为所述第一类型的任务,则将所述待处理任务添加到所述目标任务队列中;
分配模块,用于控制所述电子设备的系统为所述目标任务队列中的所述待处理任务分配线程;
执行模块,用于利用分配的线程优先执行所述待处理任务。
9.一种计算机可读的存储介质,其上存储有计算机程序,其特征在于,当所述计算机程序在计算机上执行时,使得所述计算机执行如权利要求1至7中任一项所述的方法。
10.一种电子设备,包括存储器,处理器,其特征在于,所述处理器通过调用所述存储器中存储的计算机程序,以执行如权利要求1至7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010627101.7A CN111831410A (zh) | 2020-07-01 | 2020-07-01 | 任务处理方法、装置、存储介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010627101.7A CN111831410A (zh) | 2020-07-01 | 2020-07-01 | 任务处理方法、装置、存储介质及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111831410A true CN111831410A (zh) | 2020-10-27 |
Family
ID=72899761
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010627101.7A Pending CN111831410A (zh) | 2020-07-01 | 2020-07-01 | 任务处理方法、装置、存储介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111831410A (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112799805A (zh) * | 2021-01-21 | 2021-05-14 | 惠州Tcl移动通信有限公司 | 基于终端设备的调度方法、装置、存储介质及终端设备 |
CN112817745A (zh) * | 2021-01-14 | 2021-05-18 | 内蒙古蒙商消费金融股份有限公司 | 一种任务处理方法及装置 |
CN112988355A (zh) * | 2021-03-31 | 2021-06-18 | 深圳市优必选科技股份有限公司 | 程序任务的调度方法、装置、终端设备及可读存储介质 |
CN113760540A (zh) * | 2021-07-29 | 2021-12-07 | 苏州浪潮智能科技有限公司 | 一种任务处理方法和相关装置 |
CN114489984A (zh) * | 2022-01-26 | 2022-05-13 | 北京火山引擎科技有限公司 | 任务处理方法、装置、电子设备、存储介质及程序产品 |
CN115016919A (zh) * | 2022-08-05 | 2022-09-06 | 阿里云计算有限公司 | 任务调度方法、电子设备和存储介质 |
CN115037702A (zh) * | 2022-05-23 | 2022-09-09 | 北京梧桐车联科技有限责任公司 | 报文分发、数据发送方法及设备 |
CN115809956A (zh) * | 2022-12-22 | 2023-03-17 | 格兰菲智能科技有限公司 | 图形处理器性能分析方法、装置、计算机设备和存储介质 |
CN116737330A (zh) * | 2022-09-02 | 2023-09-12 | 荣耀终端有限公司 | 任务处理方法和电子设备 |
-
2020
- 2020-07-01 CN CN202010627101.7A patent/CN111831410A/zh active Pending
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112817745A (zh) * | 2021-01-14 | 2021-05-18 | 内蒙古蒙商消费金融股份有限公司 | 一种任务处理方法及装置 |
CN112799805A (zh) * | 2021-01-21 | 2021-05-14 | 惠州Tcl移动通信有限公司 | 基于终端设备的调度方法、装置、存储介质及终端设备 |
WO2022156612A1 (zh) * | 2021-01-21 | 2022-07-28 | 惠州Tcl移动通信有限公司 | 基于终端设备的调度方法、装置、存储介质及终端设备 |
CN112988355A (zh) * | 2021-03-31 | 2021-06-18 | 深圳市优必选科技股份有限公司 | 程序任务的调度方法、装置、终端设备及可读存储介质 |
CN112988355B (zh) * | 2021-03-31 | 2023-12-15 | 深圳市优必选科技股份有限公司 | 程序任务的调度方法、装置、终端设备及可读存储介质 |
CN113760540B (zh) * | 2021-07-29 | 2023-08-25 | 苏州浪潮智能科技有限公司 | 一种任务处理方法和相关装置 |
CN113760540A (zh) * | 2021-07-29 | 2021-12-07 | 苏州浪潮智能科技有限公司 | 一种任务处理方法和相关装置 |
CN114489984A (zh) * | 2022-01-26 | 2022-05-13 | 北京火山引擎科技有限公司 | 任务处理方法、装置、电子设备、存储介质及程序产品 |
CN115037702A (zh) * | 2022-05-23 | 2022-09-09 | 北京梧桐车联科技有限责任公司 | 报文分发、数据发送方法及设备 |
CN115037702B (zh) * | 2022-05-23 | 2024-04-12 | 北京梧桐车联科技有限责任公司 | 报文分发、数据发送方法及设备 |
CN115016919B (zh) * | 2022-08-05 | 2022-11-04 | 阿里云计算有限公司 | 任务调度方法、电子设备和存储介质 |
CN115016919A (zh) * | 2022-08-05 | 2022-09-06 | 阿里云计算有限公司 | 任务调度方法、电子设备和存储介质 |
CN116737330A (zh) * | 2022-09-02 | 2023-09-12 | 荣耀终端有限公司 | 任务处理方法和电子设备 |
CN116737330B (zh) * | 2022-09-02 | 2024-05-07 | 荣耀终端有限公司 | 任务处理方法和电子设备 |
CN115809956A (zh) * | 2022-12-22 | 2023-03-17 | 格兰菲智能科技有限公司 | 图形处理器性能分析方法、装置、计算机设备和存储介质 |
CN115809956B (zh) * | 2022-12-22 | 2024-03-22 | 格兰菲智能科技有限公司 | 图形处理器性能分析方法、装置、计算机设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111831410A (zh) | 任务处理方法、装置、存储介质及电子设备 | |
US11941434B2 (en) | Task processing method, processing apparatus, and computer system | |
CN100568182C (zh) | 在逻辑地分区的数据处理系统内分布工作的方法和系统 | |
US9852008B2 (en) | Computer-readable recording medium storing execution information notification program, information processing apparatus, and information processing system | |
CN111831411A (zh) | 任务处理方法、装置、存储介质及电子设备 | |
KR20160132437A (ko) | 마이크로프로세서 시스템에서의 예외 처리 | |
CN109033814B (zh) | 智能合约触发方法、装置、设备及存储介质 | |
US9817754B2 (en) | Flash memory management | |
CN107515781B (zh) | 一种基于多处理器的确定性任务调度及负载均衡系统 | |
CN110879742A (zh) | 虚拟机异步创建内部快照方法、装置及存储介质 | |
CN111679911A (zh) | 云环境中gpu卡的管理方法、装置、设备及介质 | |
CN111831434A (zh) | 资源分配方法、装置、存储介质及电子设备 | |
CN116541142A (zh) | 任务调度方法、装置、设备、存储介质及计算机程序产品 | |
CN111813520A (zh) | 线程调度方法、装置、存储介质及电子设备 | |
CN105677481B (zh) | 一种数据处理方法、系统及电子设备 | |
CN111831432B (zh) | Io请求的调度方法、装置、存储介质及电子设备 | |
CN114327894A (zh) | 资源分配方法、装置、电子设备及存储介质 | |
CN111813541B (zh) | 一种任务调度方法、装置、介质和设备 | |
US20150212859A1 (en) | Graphics processing unit controller, host system, and methods | |
CN111078152B (zh) | 一种基于云平台的云硬盘创建方法和装置 | |
CN111444117B (zh) | 存储空间碎片化实现方法、装置、存储介质及电子设备 | |
CN111831436A (zh) | Io请求的调度方法、装置、存储介质及电子设备 | |
US9088569B2 (en) | Managing access to a shared resource using client access credentials | |
CN111831442A (zh) | 一种资源分配的方法、装置、存储介质及电子设备 | |
CN111831439A (zh) | Io请求的处理方法、装置、存储介质及电子设备 |
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 |