CN112099945A - 一种任务处理方法、任务处理装置及电子设备 - Google Patents

一种任务处理方法、任务处理装置及电子设备 Download PDF

Info

Publication number
CN112099945A
CN112099945A CN202010841555.4A CN202010841555A CN112099945A CN 112099945 A CN112099945 A CN 112099945A CN 202010841555 A CN202010841555 A CN 202010841555A CN 112099945 A CN112099945 A CN 112099945A
Authority
CN
China
Prior art keywords
task
thread
processed
priority
thread pool
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
Application number
CN202010841555.4A
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.)
Shenzhen Launch Technology Co Ltd
Original Assignee
Shenzhen Launch 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 Shenzhen Launch Technology Co Ltd filed Critical Shenzhen Launch Technology Co Ltd
Priority to CN202010841555.4A priority Critical patent/CN112099945A/zh
Publication of CN112099945A publication Critical patent/CN112099945A/zh
Pending 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/48Indexing scheme relating to G06F9/48
    • G06F2209/484Precedence
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5011Pool
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5018Thread allocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5021Priority

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是本申请实施例提供的电子设备的结构示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
部分嵌入式设备在硬件成本及使用空间的限制下,其内部软件可运行的系统资源较小。目前,嵌入式设备在软件设计时,有如下几个有待改进的地方:其一是在任务开始时创建线程,在任务结束时释放线程,较为耗时;其二是当前多任务同时运行,不考虑系统资源,容易造成资源的浪费及成本的提高;其三是重要的任务和不重要的任务之间没有区分,重要任务和不重要任务同时运行时,可能导致重要任务因抢占不到资源而处理失败,以及不重要的任务长期占用资源而导致资源浪费。基于此,本申请实施例提出了一种任务处理方法、任务处理装置、电子设备及计算机可读存储介质,可保证内核的充分利用,降低任务的启动时间,大大提高任务的处理效率,同时实现对任务的有效管理,减少出现重要的任务无法执行的情况。为了说明本申请实施例所提出的技术方案,下面通过具体实施例来进行说明。
下面对本申请实施例提供的一种任务处理方法进行描述,本申请实施例中的电子设备以车载终端为例,该任务处理方法应用于车载终端。请参阅图1,该任务处理方法包括:
步骤101,当接收到待处理任务时,获取上述待处理任务的优先级;
在本申请实施例中,可以由研发人员预先设计车载终端所面对的各个任务的优先级。仅作为示例,具体设计方式可遵循如下定义:
任务共划分有三个优先级,分别为高优先级、中优先级及低优先级。
其中,高优先级任务,指的是紧急任务或是实时需要运行的任务,例如:电子控制单元(Electronic Control Unit,ECU)刷写任务、读取故障码任务、清除故障码任务及实时数采任务等;
中优先级任务,指的是可延长执行或是满足一定条件运行的任务,例如:ECU数据采集任务、读取ECU信息任务、标定任务及软件升级任务等;
低优先级任务,指的是常规任务或定时执行的任务,例如:上传位置信息任务、采集车辆车载自诊断系统(On-Board Diagnostics,OBD)数据任务、采集控制器域网(Controller Area Network,CAN)数据任务及输出告警信息任务等。
当然,研发人员也可以设计更多或更少的优先级,或者基于其它定义设计各个任务所对应的优先级。例如,可以是车载终端根据车辆数据及状态,生成不同的任务的优先级,例如,发生碰撞时产生报警事件,该报警事件产生的任务的优先级较高等,此处不作限定。
在一种应用场景下,可以是根据研发人员的设计,预先在车载终端中配置任务-优先级配置表。该任务-优先级配置表中存储的是各个任务与优先级的对应关系。当车载终端接收到待处理任务时,可通过该任务-优先级配置表查找出待处理任务的优先级。
在另一种应用场景下,程序在运行的过程中,当需要启动某任务时,会遵循研发人员的设计,设定该任务的优先级。对于每个任务来说,均有一预设的标志位,该标志位的数据值用于指示任务的优先级,则程序也将根据任务的优先级,对任务的该标志位进行设定。当车载终端接收到待处理任务时,可通过读取待处理任务的预设的标志位上的数据值来确定上述待处理任务的优先级。
步骤102,根据上述优先级,在预设的线程池中为上述对待处理任务分配线程,其中,上述线程池的大小基于上述车载终端的硬件性能及内存大小而设定;
在本申请实施例中,车载终端还将在其程序开始运行之前,也即,在车载终端上电启动后,根据其硬件性能及内存大小,创建一合适大小的线程池。通常来说,车载终端的硬件性能越高,内存大小越大,则创建的线程池的大小可以越大。当然,该线程池的大小还可以跟程序的业务以及同时运行的任务个数相关,此处不作限定。该线程池中已创建有预设数量个线程,该预设数量可通过代码或配置文件进行配置。
在一些实施例中,车载终端可以先检测线程池中是否存在空闲的线程;只有在线程池中不存在空闲的线程时,才根据待处理任务的优先级在该线程池中为该待处理任务分配线程;反之,只要在线程池中存在有一个以上空闲的线程,则可随机将一个以上空闲的线程中的任一线程分配给待处理任务。也即,只有在线程池中的所有线程均正在执行任务时,才根据待处理任务的优先级为该待处理任务分配线程;而当线程池中的存在有空闲的线程时,也即资源足够多时,可以同时运行多个任务。
在一些实施例中,在线程池中不存在空闲的线程时,车载终端将检测该线程池中是否存在候选线程,其中,候选线程指的是所执行的任务的优先级低于待处理任务的优先级的线程;当线程池中存在有一个以上候选线程时,车载终端可以随机选定任一候选线程,并将该候选线程所执行的任务挂起,将该候选线程分配给上述待处理任务。反之,若该线程池中不存在任何候选线程,也即,若该线程池中所有的线程所运行的任务都比该待处理任务的优先级高,或与该待处理任务的优先级相等,则该待处理任务将被挂起,直至该线程池中存在空闲的线程后,才将该空闲的线程分配给该待处理任务。
举例来说,假定线程池中均运行的是低优先级任务,比如上传位置信息任务、采集车辆OBD数据任务、采集CAN数据任务及输出告警信息任务;若当前时刻接收到标定任务(中优先级任务),则将暂停并挂起一低优先级的任务,并将该低优先级的任务所原本占用的线程分配给该标定任务。
步骤103,通过上述线程执行上述待处理任务。
在本申请实施例中,在待处理任务被分配了线程后,车载终端将通过该线程执行该待处理任务。在该待处理任务被执行完毕后,该线程恢复空闲状态,可供其它任务占用。
在一些实施例中,为了进一步保障重要的任务的执行效率,上述任务处理方法还可以包括:
根据上述线程池中各个非空闲的线程所执行的任务的优先级,确定各个非空闲的线程的运行顺序,或者,为各个非空闲的线程分配时间片。
车载终端可以最先运行高优先级的任务所占用的线程,并与此同时,暂停所有中优先级及低优先级的任务所占用的线程;在所有的高优先级的任务均执行完毕后,再运行中优先级的任务所占用的线程,同时保持暂停低优先级所占用的线程;在所有的中优先级的任务均执行完毕后,再运行低优先级的任务所占用的线程。举例来说,假定线程池中的各个线程均运行的是低优先级任务,比如上传位置信息任务、采集车辆OBD数据任务、采集CAN数据任务及输出告警信息任务;若当前时刻接收到标定任务(中优先级任务),则将暂停并挂起所有低优先级的任务,并在有空闲的线程的场景下,将任一空闲的线程分配给标定任务,在没有空闲的线程的场景下,将任一低优先级的任务所原本占用的线程分配给标定任务,并执行该标定任务(此时,低优先级的任务并不执行)。如果在执行该标定任务的过程中,又接收到了ECU刷写任务,则在暂停并挂起所有低优先级的任务的基础上,进一步暂停并挂起所有中优先级的任务,并在有空闲的线程的场景下,将任一空闲的线程分配给ECU刷写任务,在没有空闲的线程的场景下,将任一低优先级或中优先级的任务所原本占用的线程分配给ECU刷写任务,并执行该ECU刷写任务(此时,低优先级及中优先级的任务并不执行)。上述过程可保证较高优先级的任务被车载终端全力优先运行,以此进一步提升较高优先级的任务的处理效率。
车载终端也可以同时运行不同优先级的任务所占用的线程,但会根据各个任务的优先级,为各个任务所占用的线程分配不同的时间片。其中,相同优先级的任务所占用的线程被分配的时间片相同,且优先级越高的任务所占用的线程被分配的时间片越长。举例来说,线程池中的线程运行有上传位置信息任务(低优先级)、标定任务(中优先级)及ECU刷写任务(高优先级),其中,ECU刷写任务所占用的线程被分配的时间片为x,标定任务所占用的线程被分配的时间片为y,上传位置信息任务所占用的线程被分配的时间片为z,则可确定x、y及z之间的关系为x>y>z。上述过程也可保证较高优先级的任务被车载终端优先运行,以此进一步提升较高优先级的任务的处理效率。
由上可见,通过本申请方案,在电子设备中引入线程池,通过线程池来为各个任务分配对应的线程,省去了执行任务时线程的创建及释放操作,不仅可以保证内核的充分利用,降低任务的启动时间,而且可以提高任务的处理效率。除此之外,还划分有电子设备的各个任务的优先级,通过待处理任务的优先级来为待处理任务分配线程,实现对任务的有效管理,减少出现重要的任务无法执行的情况。
对应于上文所提供的任务处理方法,本申请实施例还提供了一种任务处理装置。如图2所示,本申请实施例中的任务处理装置200包括:
优先级获取单元201,用于当接收到待处理任务时,获取上述待处理任务的优先级;
线程分配单元202,用于根据上述优先级,在预设的线程池中为上述对待处理任务分配线程,其中,上述线程池的大小基于上述电子设备的硬件性能及内存大小而设定;
任务执行单元203,用于通过上述线程执行上述待处理任务。
可选地,上述优先级获取单元201,具体用于当接收到待处理任务时,通过预设的任务-优先级配置表查找上述待处理任务的优先级;或者,通过上述待处理任务的预设的标志位确定上述待处理任务的优先级,其中,上述标志位的数据值用于指示任务的优先级。
可选地,上述任务处理装置200还包括:
空闲线程检测单元,用于检测上述线程池中是否存在空闲的线程;
相应地,上述线程分配单元202,具体用于若上述线程池中不存在空闲的线程,则根据上述优先级,在上述线程池中为上述对待处理任务分配线程。
可选地,上述线程分配单元202,还用于若上述线程池中存在空闲的线程,则将任一空闲的线程分配给上述待处理任务。
可选地,上述线程分配单元202,包括:
候选线程检测子单元,用于若上述线程池中不存在空闲的线程,则检测上述线程池中是否存在候选线程,其中,上述候选线程为所执行的任务的优先级低于上述待处理任务的优先级的线程;
候选线程分配子单元,用于若上述线程池中存在上述候选线程,则将上述候选线程所执行的任务挂起,并将上述候选线程分配给上述待处理任务。
可选地,上述线程分配单元202,还用于若上述线程池中不存在上述候选线程,则将上述待处理任务挂起,直至上述线程池中存在空闲的线程后,将上述空闲的线程分配给上述待处理任务。
可选地,上述任务处理装置200还包括:
运行顺序确定单元,用于根据上述线程池中各个非空闲的线程所执行的任务的优先级,确定各个非空闲的线程的运行顺序;
时间片分配单元,用于根据上述线程池中各个非空闲的线程所执行的任务的优先级,为各个非空闲的线程分配时间片。
由上可见,通过本申请方案,在电子设备中引入线程池,通过线程池来为各个任务分配对应的线程,省去了执行任务时线程的创建及释放操作,不仅可以保证内核的充分利用,降低任务的启动时间,而且可以提高任务的处理效率。除此之外,还划分有电子设备的各个任务的优先级,通过待处理任务的优先级来为待处理任务分配线程,实现对任务的有效管理,减少出现重要的任务无法执行的情况。
对应于上文所提供的任务处理方法,本申请实施例还提供了一种电子设备,请参阅图3,本申请实施例中的电子设备3包括:存储器301,一个或多个处理器302(图3中仅示出一个)及存储在存储器301上并可在处理器上运行的计算机程序。其中:存储器301用于存储软件程序以及单元,处理器302通过运行存储在存储器301的软件程序以及单元,从而执行各种功能应用以及任务处理,以获取上述预设事件对应的资源。具体地,处理器302通过运行存储在存储器301的上述计算机程序时实现以下步骤:
当接收到待处理任务时,获取上述待处理任务的优先级;
根据上述优先级,在预设的线程池中为上述对待处理任务分配线程,其中,上述线程池的大小基于上述电子设备的硬件性能及内存大小而设定;
通过上述线程执行上述待处理任务。
假设上述为第一种可能的实施方式,则在第一种可能的实施方式作为基础而提供的第二种可能的实施方式中,上述当接收到待处理任务时,获取上述待处理任务的优先级,包括:
当接收到待处理任务时,通过预设的任务-优先级配置表查找上述待处理任务的优先级;或者,通过上述待处理任务的预设的标志位确定上述待处理任务的优先级,其中,上述标志位的数据值用于指示任务的优先级。
在上述第一种可能的实施方式作为基础而提供的第三种可能的实施方式中,在上述根据上述优先级,在预设的线程池中为上述对待处理任务分配线程之前,处理器302通过运行存储在存储器301的上述计算机程序时还实现以下步骤:
检测上述线程池中是否存在空闲的线程;
相应地,上述根据上述优先级,在预设的线程池中为上述对待处理任务分配线程,包括:
若上述线程池中不存在空闲的线程,则根据上述优先级,在上述线程池中为上述对待处理任务分配线程。
在上述第三种可能的实施方式作为基础而提供的第四种可能的实施方式中,在上述检测上述线程池中是否存在空闲的线程之后,处理器302通过运行存储在存储器301的上述计算机程序时还实现以下步骤:
若上述线程池中存在空闲的线程,则将任一空闲的线程分配给上述待处理任务。
在上述第三种可能的实施方式作为基础而提供的第五种可能的实施方式中,上述若上述线程池中不存在空闲的线程,则根据上述优先级,在上述线程池中为上述对待处理任务分配线程,包括:
若上述线程池中不存在空闲的线程,则检测上述线程池中是否存在候选线程,其中,上述候选线程为所执行的任务的优先级低于上述待处理任务的优先级的线程;
若上述线程池中存在上述候选线程,则将上述候选线程所执行的任务挂起,并将上述候选线程分配给上述待处理任务。
在上述第五种可能的实施方式作为基础而提供的第六种可能的实施方式中,在上述检测上述线程池中是否存在候选线程之后,处理器302通过运行存储在存储器301的上述计算机程序时还实现以下步骤:
若上述线程池中不存在上述候选线程,则将上述待处理任务挂起,直至上述线程池中存在空闲的线程后,将上述空闲的线程分配给上述待处理任务。
在上述第一种可能的实施方式作为基础,或者上述第二种可能的实施方式作为基础,或者上述第三种可能的实施方式作为基础,或者上述第四种可能的实施方式作为基础,或者上述第五种可能的实施方式作为基础,或者上述第六种可能的实施方式作为基础而提供的第七种可能的实施方式中,处理器302通过运行存储在存储器301的上述计算机程序时还实现以下步骤:
根据上述线程池中各个非空闲的线程所执行的任务的优先级,确定各个非空闲的线程的运行顺序,或者,为各个非空闲的线程分配时间片。
应当理解,在本申请实施例中,所称处理器302可以是中央处理单元(CentralProcessing Unit,CPU),该处理器还可以是其他通用处理器、数字信号处理器(DigitalSignal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器301可以包括只读存储器和随机存取存储器,并向处理器302提供指令和数据。存储器301的一部分或全部还可以包括非易失性随机存取存储器。例如,存储器301还可以存储设备类别的信息。
由上可见,通过本申请方案,在电子设备中引入线程池,通过线程池来为各个任务分配对应的线程,省去了执行任务时线程的创建及释放操作,不仅可以保证内核的充分利用,降低任务的启动时间,而且可以提高任务的处理效率。除此之外,还划分有电子设备的各个任务的优先级,通过待处理任务的优先级来为待处理任务分配线程,实现对任务的有效管理,减少出现重要的任务无法执行的情况。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将上述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者外部设备软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,上述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
上述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关联的硬件来完成,上述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,上述计算机程序包括计算机程序代码,上述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。上述计算机可读存储介质可以包括:能够携带上述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机可读存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,上述计算机可读存储介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读存储介质不包括是电载波信号和电信信号。
以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。

Claims (10)

1.一种任务处理方法,其特征在于,应用于电子设备,包括:
当接收到待处理任务时,获取所述待处理任务的优先级;
根据所述优先级,在预设的线程池中为所述对待处理任务分配线程,其中,所述线程池的大小基于所述电子设备的硬件性能及内存大小而设定;
通过所述线程执行所述待处理任务。
2.如权利要求1所述的任务处理方法,其特征在于,所述当接收到待处理任务时,获取所述待处理任务的优先级,包括:
当接收到待处理任务时,通过预设的任务-优先级配置表查找所述待处理任务的优先级;或者,通过所述待处理任务的预设的标志位确定所述待处理任务的优先级,其中,所述标志位的数据值用于指示任务的优先级。
3.如权利要求1所述的任务处理方法,其特征在于,在所述根据所述优先级,在预设的线程池中为所述对待处理任务分配线程之前,所述任务处理方法还包括:
检测所述线程池中是否存在空闲的线程;
相应地,所述根据所述优先级,在预设的线程池中为所述对待处理任务分配线程,包括:
若所述线程池中不存在空闲的线程,则根据所述优先级,在所述线程池中为所述对待处理任务分配线程。
4.如权利要求3所述的任务处理方法,其特征在于,在所述检测所述线程池中是否存在空闲的线程之后,所述任务处理方法还包括:
若所述线程池中存在空闲的线程,则将任一空闲的线程分配给所述待处理任务。
5.如权利要求3所述的任务处理方法,其特征在于,所述若所述线程池中不存在空闲的线程,则根据所述优先级,在所述线程池中为所述对待处理任务分配线程,包括:
若所述线程池中不存在空闲的线程,则检测所述线程池中是否存在候选线程,其中,所述候选线程为所执行的任务的优先级低于所述待处理任务的优先级的线程;
若所述线程池中存在所述候选线程,则将所述候选线程所执行的任务挂起,并将所述候选线程分配给所述待处理任务。
6.如权利要求5所述的任务处理方法,其特征在于,在所述检测所述线程池中是否存在候选线程之后,所述任务处理方法还包括:
若所述线程池中不存在所述候选线程,则将所述待处理任务挂起,直至所述线程池中存在空闲的线程后,将所述空闲的线程分配给所述待处理任务。
7.如权利要求1至6任一项所述的任务处理方法,其特征在于,所述任务处理方法还包括:
根据所述线程池中各个非空闲的线程所执行的任务的优先级,确定各个非空闲的线程的运行顺序,或者,为各个非空闲的线程分配时间片。
8.一种任务处理装置,其特征在于,应用于电子设备,包括:
优先级获取单元,用于当接收到待处理任务时,获取所述待处理任务的优先级;
线程分配单元,用于根据所述优先级,在预设的线程池中为所述对待处理任务分配线程,其中,所述线程池的大小基于所述电子设备的硬件性能及内存大小而设定;
任务执行单元,用于通过所述线程执行所述待处理任务。
9.一种电子设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7任一项所述的方法。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的方法。
CN202010841555.4A 2020-08-20 2020-08-20 一种任务处理方法、任务处理装置及电子设备 Pending CN112099945A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010841555.4A CN112099945A (zh) 2020-08-20 2020-08-20 一种任务处理方法、任务处理装置及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010841555.4A CN112099945A (zh) 2020-08-20 2020-08-20 一种任务处理方法、任务处理装置及电子设备

Publications (1)

Publication Number Publication Date
CN112099945A true CN112099945A (zh) 2020-12-18

Family

ID=73753949

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010841555.4A Pending CN112099945A (zh) 2020-08-20 2020-08-20 一种任务处理方法、任务处理装置及电子设备

Country Status (1)

Country Link
CN (1) CN112099945A (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102541653A (zh) * 2010-12-24 2012-07-04 新奥特(北京)视频技术有限公司 一种多任务线程池调度方法和系统
WO2014200552A1 (en) * 2013-06-14 2014-12-18 Microsoft Corporation Assigning and scheduling threads for multiple prioritized queues
CN109783229A (zh) * 2018-12-17 2019-05-21 平安普惠企业管理有限公司 线程资源分配的方法及装置
CN110046038A (zh) * 2019-03-12 2019-07-23 平安普惠企业管理有限公司 一种基于线程池的任务处理方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102541653A (zh) * 2010-12-24 2012-07-04 新奥特(北京)视频技术有限公司 一种多任务线程池调度方法和系统
WO2014200552A1 (en) * 2013-06-14 2014-12-18 Microsoft Corporation Assigning and scheduling threads for multiple prioritized queues
CN109783229A (zh) * 2018-12-17 2019-05-21 平安普惠企业管理有限公司 线程资源分配的方法及装置
CN110046038A (zh) * 2019-03-12 2019-07-23 平安普惠企业管理有限公司 一种基于线程池的任务处理方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
杨欧 等: "《基于物联网平台的智能服务机器人设计》", 西安交通大学出版社, pages: 322 - 323 *

Similar Documents

Publication Publication Date Title
CN106547612B (zh) 一种多任务处理方法及装置
CN110941481A (zh) 资源调度方法、装置及系统
CN108334396B (zh) 一种数据处理方法和装置、资源组的创建方法和装置
CN107491346B (zh) 一种应用的任务处理方法、装置及系统
CN111061570B (zh) 一种图像计算请求处理方法、装置及终端设备
CN110704173A (zh) 任务调度方法、调度系统、电子设备及计算机存储介质
CN110737534A (zh) 任务的处理方法、装置和服务器
CN105359101B (zh) 用于多核处理器的系统管理中断处理
CN109033814B (zh) 智能合约触发方法、装置、设备及存储介质
CN111897637B (zh) 作业调度方法、装置、主机及存储介质
CN107515781B (zh) 一种基于多处理器的确定性任务调度及负载均衡系统
CN103329102A (zh) 多处理器系统
CN106020984B (zh) 电子设备中进程的创建方法及装置
CN112860387A (zh) 分布式任务调度方法、装置、计算机设备及存储介质
CN112068960B (zh) 一种cpu资源分配方法、装置、存储介质及设备
CN114816709A (zh) 任务调度方法、装置、服务器及可读存储介质
US9958928B2 (en) Method and apparatus for controlling an operating mode of a processing module
CN112214291A (zh) 一种任务调度方法及装置
CN111831408A (zh) 异步任务处理方法、装置、电子设备及介质
EP2750045A1 (en) Method and apparatus for allocating interrupts in a multi-core system
CN112099945A (zh) 一种任务处理方法、任务处理装置及电子设备
CN112486638A (zh) 用于执行处理任务的方法、装置、设备和存储介质
CN115599304A (zh) 应用于存储节点的数据处理方法、装置、设备及存储介质
CN113485838A (zh) 服务器分配方法及装置、电子设备和计算机可读存储介质
CN114116230A (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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20201218