CN108255607A - 任务处理方法、装置、电子终端及可读存储介质 - Google Patents
任务处理方法、装置、电子终端及可读存储介质 Download PDFInfo
- Publication number
- CN108255607A CN108255607A CN201810016430.0A CN201810016430A CN108255607A CN 108255607 A CN108255607 A CN 108255607A CN 201810016430 A CN201810016430 A CN 201810016430A CN 108255607 A CN108255607 A CN 108255607A
- Authority
- CN
- China
- Prior art keywords
- thread
- subtask
- task
- electric terminal
- 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
Links
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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation 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/5038—Allocation 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
-
- 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/5017—Task decomposition
-
- 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)
- Stored Programmes (AREA)
Abstract
本发明实施例提供一种任务处理方法、装置、电子终端及可读存储介质。所述任务处理方法包括:根据所述电子终端的资源数据计算得到处理待处理任务需要线程池的M个线程,M为大于等于2的整数;将所述待处理任务划分为M个子任务,并为每个线程分配所述M个子任务中的一个子任务;当所述线程池中的每一线程均处理完成所分配的子任务时,将M个子任务的处理结果进行整合得到所述待处理任务的处理结果。
Description
技术领域
本发明涉及计算机技术领域,具体而言,涉及一种任务处理方法、装置、电子终端及可读存储介质。
背景技术
在系统的开发过程中通常会遇到耗时操作,传统方案中针对耗时操作的处理方法是通过启动一个子线程的方式来对该任务进行处理从而来加快耗时操作任务的执行速度。但是这样的处理方式仅仅在耗时操作任务启动新的线程,并不能很好地提高任务处理效率。
发明内容
有鉴于此,本发明实施例的目的在于提供一种任务处理方法、装置、电子终端及可读存储介质。
本发明实施例提供的一种任务处理方法,应用于电子终端,所述任务处理方法包括:
根据所述电子终端的资源数据计算得到处理待处理任务需要线程池的M个线程,M为大于等于2的整数;
将所述待处理任务划分为M个子任务,并为每个线程分配所述M个子任务中的一个子任务;
当所述线程池中的每一线程均处理完成所分配的子任务时,将M个子任务的处理结果进行整合得到所述待处理任务的处理结果。
本发明实施例还提供一种任务处理装置,应用于电子终端,所述任务处理装置包括:
计算模块,用于根据所述电子终端的资源数据计算得到处理待处理任务需要线程池的M个线程,M为大于等于2的整数;
处理模块,用于将所述待处理任务划分为M个子任务,并为每个线程分配所述M个子任务中的一个子任务;
整合模块,用于当所述线程池中的每一线程均处理完成所分配的子任务时,将M个子任务的处理结果进行整合得到所述待处理任务的处理结果。
本发明实施例还提供一种电子终端,包括:
存储器;
处理器;
上述的任务处理装置,该实时动画显示装置存储于所述存储器并由所述处理器控制执行。
本发明实施例还提供一种可读存储介质,其上存储有计算机程序,所述计算机程序在执行时实现上述的任务处理方法。
与现有技术相比,本发明实施例的任务处理方法、装置、电子终端及可读存储介质,通过根据电子终端的资源启动多个线程处理任务,在能够符合电子终端性能承载能力的条件下能够更快地处理任务,从而能够有效的提高任务的处理效率,降低任务处理是总时间开销,提高了软件的执行效率及用户体验。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本发明较佳实施例提供的电子终端的方框示意图。
图2为本发明较佳实施例提供的任务处理方法的流程图。
图3为本发明另一较佳实施例提供的任务处理方法的流程图。
图4为本发明较佳实施例提供的任务处理装置的功能模块示意图。
具体实施方式
下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本发明的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
如图1所示,是所述电子终端100的方框示意图。所述电子终端100包括任务处理装置110、存储器111、存储控制器112、处理器113、外设接口114、输入输出单元115、显示单元116。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对电子终端100的结构造成限定。例如,电子终端100还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
所述存储器111、存储控制器112、处理器113、外设接口114、输入输出单元115及显示单元116各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。所述任务处理装置110包括至少一个可以软件或固件(Firmware)的形式存储于所述存储器111中或固化在所述电子终端100的操作系统(Operating System,OS)中的软件功能模块。所述处理器113用于执行存储器中存储的可执行模块,例如所述任务处理装置110包括的软件功能模块或计算机程序。
其中,所述存储器111可以是,但不限于,随机存取存储器(Random AccessMemory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(ProgrammableRead-Only Memory,PROM),可擦除只读存储器(Erasable Programmable Read-OnlyMemory,EPROM),电可擦除只读存储器(Electric Erasable Programmable Read-OnlyMemory,EEPROM)等。其中,存储器111用于存储程序,所述处理器113在接收到执行指令后,执行所述程序,本发明实施例任一实施例揭示的过程定义的电子终端100所执行的方法可以应用于处理器113中,或者由处理器113实现。
本实施例中,所述电子终端100中安装安卓(Android)操作系统。所述Android操作系统存储在所述存储器111中。其中操作系统可包括各种用于管理系统任务(例如内存管理、存储设备控制、电源管理等)的软件组件和/或驱动。
所述处理器113可能是一种集成电路芯片,具有信号的处理能力。上述的处理器113可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述外设接口114将各种输入/输入装置耦合至处理器113以及存储器111。在一些实施例中,外设接口114,处理器113以及存储控制器112可以在单个芯片中实现。在其他一些实例中,他们可以分别由独立的芯片实现。
所述输入输出单元115用于提供给用户输入数据。所述输入输出单元115可以是,但不限于,鼠标和键盘等。
所述显示单元116在所述电子终端100与用户之间提供一个交互界面(例如用户操作界面)或用于显示图像数据给用户参考。在本实施例中,所述显示单元可以是液晶显示器或触控显示器。若为触控显示器,其可为支持单点和多点触控操作的电容式触控屏或电阻式触控屏等。支持单点和多点触控操作是指触控显示器能感应到来自该触控显示器上一个或多个位置处同时产生的触控操作,并将该感应到的触控操作交由处理器进行计算和处理。
Serviece服务是运行在后台的一种任务,Serviece服务服务也是运行在主线程中。服务在后台运行可以用于处理一些非UI相关的业务功能。但是由于服务本身有一个特性是运行在主线程,如果我们在主线程中处理耗时任务就会导致主线程卡顿甚至是ANR(Application Not Responding,应用程序无响应)的异常问题。
针对上述问题我们结合服务与多线程来解决该问题。本方案中通过线程池来进行处理。下面对所述Serviece服务处理通过任务处理方法实施例及任务处理装置实施例进行详细描述。
请参阅图2,是本发明较佳实施例提供的应用于图1所示的电子终端100的任务处理方法的流程图。下面将对图2所示的具体流程进行详细阐述。
步骤S101,根据所述电子终端的资源数据计算得到处理待处理任务需要线程池的M个线程。
本实施例中,M为大于等于2的整数。
本实施例中的方法应用于安装有Android操作系统的电子终端。所述待处理任务可以是Serviece服务,所述Serviece服务在Application类中的oncreate方法执行时启动。
本实施例中,在Android中定义一个服务首先需要在描述清单AndroidManifest.xml文件中定义一个服务标签<service>,然后在该服务标签<service>定义具体的服务的包和类名。在一个实例中,所述服务的具体的定义如下所示:
<service>
<name>xxx.xxx.xxx.xxx</name>
</service>
其中,name字段中的内容是具体的服务的包名+类名;xxx.xxx.xxx.xxx表示的是需要被启动的服务的包名+类名的完整路径信息。通过在Android系统的清单文件AndroidManifest.xml中定义服务的标签以实现对服务的定义。只有在系统的清单文件AndroidManifest.xml中定义了服务后续才能够在系统中启动该服务。
在一种实施方式中,在Android中启动服务需要获取到一个context对象,context对象是一个上下文对象,我们通过调用getApplicationContex函数来返回当前应用的context对象,获取到该对象后,通过调研context对象中的startService(”xxx.xxx.xxx.xxx”)方式来启动服务。进一步地,如果启动服务过程中需要传递参数信息,可以将参数信息封装到startService函数中的方式来进行参数的传递。在一种实施方式中,具体调用方式如下startService(”xxx.xxx.xxx.xxx”,”params”),其中,params表示参数信息。
本实施例中的任务处理方法中的待处理任务是后台任务,所以待处理任务的启动的时机可以尽量早。在一个实例中,在整个应用程序中最早的时机是应用更多Application类的oncreate方法,因此,所述服务的启动时机可以是在Application类中的oncreate方法来进行启动的。
本实施例的待处理任务可以使用多线程进行处理。例如,可以使用Thread类来实现多线程处理所述待处理任务;还可以使用线程池来处理所述待处理任务。
在一种选择中,可以使用线程池来处理所述待处理任务。线程池来实现多线程可以方便线程的管控及线程数量的复用等优势,还能够极大的提高线程的创建速度,从而提高任务的处理速度。
详细地,本实施例中的方法区别与传统方案线程池的线程数量大小。本实施例中的方法所使用的线程池的数量是根据电子终端的资源数据进行动态调整的,现有的线程池是程序运行的时候就已经确定的。通过动态调整所述线程池的线程数量可以更有效地适应电子终端的配置,在能够满足待处理任务的线程需求的同时避免负担太大导致电子终端运行缓慢。
在一种实施方式中,可以根据所述电子终端的内存、CPU核心数及CPU频率计算得到所述线程数量。下面对线程数量的计算方法进行详细描述。本实施例中,可以根据所述电子终端的剩余内存、空闲CPU核心数及空闲CPU频率计算得到所述线程数量。也可以根据所述电子终端的总共内存、总共CPU核心数及总共CPU频率计算得到所述线程数量。本领域的技术人员可以适应性调整所述线程数量的计算方式。
详细地,线程池的线程数量的大小可以与电子终端的内存和CPU核心数及CPU频率数均有关系。在一种实施方式中,可通过建立了一套数量与线程数量之间的映射关系,具体的映射函数如下所示:
为了描述方便,可以将内存大小标记为mem,CPU核心数标记为cpuNum,CPU频率标记为cpuF,线程数量的大小为M,接下来给出相应的映射关系如下所示:M=K*mem*cpuNum*cpuF,其中,K是一个调节系数,也就是一个常量。可以理解的是,本领域的技术人员可以根据电子终端或待处理任务所处理的任务的不同进行设置。
由所述映射函数可以看出,内存越大线程数量越多,CPU核心数量越多线程数量越多,CPU频率越高线程数量越多。
进一步地,如果M数量换算出来的结果是小数的时候按照四舍五入方式进行处理以得到整数线程数量。
进一步地,所述线程数量可以限定在指定区间,例如,所述指定区间可以是二到十的整数。当然,所述指定区间也可以在二到十三的整数。例如,如果M数量计算得到的值在在零到二之间,则可以将线程数量取值为二;M数量计算得到的值大于十。由于线程数量过于多,会极大的增加电子终端的系统开销,为了避免这种极端情况出现可以将线程池的线程数量限制在十个或十三个或十四个以内。
在一个实例中,在所述待处理任务被定义时,在待处理任务中定义一个线程池threadPool,然后在线程池中定义的线程数量个数为M,该M是在服务启动的时候通过params参数传递过来的变量信息,主要是用于标记线程池的最大线程数量。
步骤S102,将所述待处理任务划分为M个子任务,并为每个线程分配所述M个子任务中的一个子任务。
本实施例中,将所述待处理任务进行划分成多个子任务。其中所述子任务的数量可以与所述线程池的线程数量相同。本实施例中将启动M个线程处理M个子任务。
步骤S103,当所述线程池中的每一线程均处理完成所分配的子任务时,将M个子任务的处理结果进行整合得到所述待处理任务的处理结果。
本实施例中,通过启动一新线程将所述线程池中每一个线程的处理结果进行整合得到所述任务处理结果。
下面在一个实例中描述待处理任务的划分,以及线程处理对应的子任务的流程。在一个实例中,假如有三十个数字需要求平均值及所述线程池的线程数量为三。因此,在所述待处理任务启动时,会开启三个线程以处理所述待处理任务。在一个实例中,可以将三十个数字等分成三份,也就是每一份有十个数字。然后在每个线程中都先计算出十个个数字的平均值,这样三个线程可以同时对这三十个数据来进行处理,理论上的处理速度会是原来的三倍,时间花费会是原来的三分之一。在其它实例中,也可以将三十个数字不等分成三份,例如,分别分成九个、十个、十一个数字。
下面在一个实例中描述将每个子任务的处理结果进行整合得到所述待处理任务的处理结果。为了方便理解我们还是继续上述的例子来进行说明,假如三个线程的结果分别是a1、a2、a3。
接下来当每个线程均处理完成所分配的子任务时,可以通过Thread类的start方法来开启一个新的线程来对着三个处理结果进行整合处理。上述的求均值的例子中的处理逻辑是(a1+a2+a3)/3,新线程执行完成后则可以返回所述待处理任务的处理结果,这样就完成了整个待处理任务。
本发明实施例的任务处理方法,通过根据电子终端的资源启动多个线程处理任务,在能够符合电子终端性能承载能力的条件下能够更快地处理任务,从而能够有效的提高任务的处理效率,降低任务处理是总时间开销,提高了软件的执行效率及用户体验。
在其它实施例中,所述电子终端存储有计数器,用于记录所述线程池的任务完成状态。如图3所示,本实施例中的任务处理方法包括以下步骤。
步骤S201,根据所述电子终端的资源数据计算得到处理待处理任务需要线程池的M个线程。
本实施例中,M为大于等于2的整数。
步骤S202,将所述待处理任务划分为M个子任务,并为每个线程分配所述M个子任务中的一个子任务。
步骤S203,所述线程池中任一线程的子任务处理完成后,所述计数器进行计数。
本实施例中,将待处理任务划分成多个线程来进行同时执行,但是由于CPU的时间片的调度并不可能完全相同,因此会导致这三个线程无法同时完成。
为了解决线程池中的线程同步的问题,可以预先定义一个全局变量count作为计数器。
在一种实施方式中,可以将全局变量count的值设置为和M的值是相同的。当线程池中任意一个线程的子任务完成的时候,对count的值进行减一操作,用于标记一个线程的子任务已经完成。每一个任务完成的时候都需要对count减一然后判断count是否等于0,如果不等于0说明当前其他的线程还没有完成,需要继续等待,如果等于0了,说明其他的所有线程都完成了。
在另一种实施方式中,所述全局变量的初始值也可以是零,当线程池中任意一个线程的子任务完成的时候,对count的值进行加一操作,用于标记一个线程的子任务已经完成。每一个任务完成的时候都需要对count加一然后判断count是否等于M,如果不等于M说明当前其他的线程还没有完成,需要继续等待,如果等于M了,说明其他的所有线程都完成了。
步骤S204,当所述线程池中任一线程的任务处理完成后,将所述线程池中处于工作中的线程对应的子任务的优先级调高。
上述步骤是用于解决同步流程的,为了能够更快的使得所有的任务完成,还可以对优先级进行动态的调整。
在一种实施方式中,初始状态下的时候M个线程的优先级是相同的。下面以线程池中线程数量为三进行描述。假设线程三最先完成了子任务3,此时子任务1和2还没有完成,需要等待子任务1和2完成。此时为了加快任务完成可以将子任务1和2的优先级进行上调,这样子任务1和2能够获取到的CPU的时间片会增多,也就会使得任务1和2的执行速度更快,更加有利于子任务1和2尽快的完成。再进一步地,如果子任务2完成后子任务1还没有完成,此时可以再次调高子任务1的优先级,直到子任务1完成后。
通过调整未完成的子任务的优先级,可以为该子任务对应的线程分配更多的时间片,从而提高处理效率。
步骤S205,通过所述计数器的数值变化判断所述线程池的线程是否完成子任务处理。
本实施例中,可以在每次对所述计数器进行操作时,均执行一次步骤S205的判断,直到判断得到线程池的线程全部完成子任务处理后,执行步骤S206。
步骤S206,当所述线程池中的每一线程均处理完成所分配的子任务时,将M个子任务的处理结果进行整合得到所述待处理任务的处理结果。
步骤S201、步骤S202及步骤S206与前一方法实施例中的步骤S101至步骤S103类似,在此不再赘述。
本发明实施例的任务处理方法,通过根据电子终端的资源启动多个线程处理任务,并使用计数器统计线程池中各个线程的子任务完成情况,可以获取到线程池中所有任务的完成情况。另外,还能通过动态调整未完成的子任务的优先级,可以进一步地提高待处理任务的完成效率。
请参阅图4,是本发明较佳实施例提供的图1所示的任务处理装置110的功能模块示意图。本实施例中的任务处理装置110中的各个模块及单元用于执行上述方法实施例中的各个步骤。所述任务处理装置110包括:计算模块1101、处理模块1102以及整合模块1103。
所述计算模块1101,用于根据所述电子终端的资源数据计算得到处理待处理任务需要线程池的M个线程,M为大于等于2的整数。
所述处理模块1102,用于将所述待处理任务划分为M个子任务,并为每个线程分配所述M个子任务中的一个子任务。
所述整合模块1103,用于当所述线程池中的每一线程均处理完成所分配的子任务时,将M个子任务的处理结果进行整合得到所述待处理任务的处理结果。
本实施例中,所述计算模块1101还用于根据所述电子终端的内存、CPU核心数及CPU频率计算得到所述线程数量。
本实施例中,所述电子终端存储有计数器,用于记录所述线程池的任务完成状态,所述任务处理装置110还包括:计数模块1104及判断模块1105。
所述计数模块1104,用于所述线程池中任一线程的子任务处理完成后,所述计数器进行计数。
所述判断模块1105,用于通过所述计数器的数值变化判断所述线程池的线程是否完成子任务处理。
本实施例中,所述任务处理装置110还包括:调节模块1106,用于当所述线程池中任一线程的任务处理完成后,将所述线程池中处于工作中的线程对应的子任务的优先级调高。
关于本实施例的其它细节可以进一步地参考上述方法实施例中的描述,在此不再赘述。
本发明实施例的任务处理装置,通过根据电子终端的资源启动多个线程处理任务,在能够符合电子终端性能承载能力的条件下能够更快地处理任务,从而能够有效的提高任务的处理效率,降低任务处理是总时间开销,提高了软件的执行效率及用户体验。
本发明实施例提供一种可读存储介质,其上存储有计算机程序,所述计算机程序在执行时实现上述实施例提供的任务处理方法。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (10)
1.一种任务处理方法,其特征在于,应用于电子终端,所述任务处理方法包括:
根据所述电子终端的资源数据计算得到处理待处理任务需要线程池的M个线程,M为大于等于2的整数;
将所述待处理任务划分为M个子任务,并为每个线程分配所述M个子任务中的一个子任务;
当所述线程池中的每一线程均处理完成所分配的子任务时,将M个子任务的处理结果进行整合得到所述待处理任务的处理结果。
2.如权利要求1所述的任务处理方法,其特征在于,所述根据所述电子终端的资源数据计算得到处理待处理任务需要线程池的M个线程的步骤包括:
根据所述电子终端的内存、CPU核心数及CPU频率计算得到所述线程数量。
3.如权利要求1所述的任务处理方法,其特征在于,所述电子终端存储有计数器,用于记录所述线程池的任务完成状态,所述将所述待处理任务划分为M个子任务,并为每个线程分配所述M个子任务中的一个子任务的步骤之后,所述方法还包括:
所述线程池中任一线程的子任务处理完成后,所述计数器进行计数;
通过所述计数器的数值变化判断所述线程池的线程是否完成子任务处理。
4.如权利要求1所述的任务处理方法,其特征在于,所述将所述待处理任务划分为M个子任务,并为每个线程分配所述M个子任务中的一个子任务的步骤还包括:
当所述线程池中任一线程的任务处理完成后,将所述线程池中处于工作中的线程对应的子任务的优先级调高。
5.如权利要求1-4任意一项所述的任务处理方法,其特征在于,所述待处理任务是Serviece服务,所述方法还包括:
所述Serviece服务在Application类中的oncreate方法执行时启动。
6.一种任务处理装置,其特征在于,应用于电子终端,所述任务处理装置包括:
计算模块,用于根据所述电子终端的资源数据计算得到处理待处理任务需要线程池的M个线程,M为大于等于2的整数;
处理模块,用于将所述待处理任务划分为M个子任务,并为每个线程分配所述M个子任务中的一个子任务;
整合模块,用于当所述线程池中的每一线程均处理完成所分配的子任务时,将M个子任务的处理结果进行整合得到所述待处理任务的处理结果。
7.如权利要求6所述的任务处理装置,其特征在于,所述计算模块还用于根据所述电子终端的内存、CPU核心数及CPU频率计算得到所述线程数量。
8.如权利要求6所述的任务处理装置,其特征在于,所述电子终端存储有计数器,用于记录所述线程池的任务完成状态,所述装置还包括:
计数模块,用于所述线程池中任一线程的子任务处理完成后,所述计数器进行计数;
判断模块,用于通过所述计数器的数值变化判断所述线程池的线程是否完成子任务处理。
9.一种电子终端,其特征在于,包括:
存储器;
处理器;
权利要求6-8任一项所述的任务处理装置,该任务处理装置存储于所述存储器并由所述处理器控制执行。
10.一种可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序在执行时实现上述权利要求1-5中任意一项所述的任务处理方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810016430.0A CN108255607A (zh) | 2018-01-08 | 2018-01-08 | 任务处理方法、装置、电子终端及可读存储介质 |
PCT/CN2018/084111 WO2019134304A1 (zh) | 2018-01-08 | 2018-04-23 | 任务处理方法、装置、电子终端及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810016430.0A CN108255607A (zh) | 2018-01-08 | 2018-01-08 | 任务处理方法、装置、电子终端及可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108255607A true CN108255607A (zh) | 2018-07-06 |
Family
ID=62726138
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810016430.0A Pending CN108255607A (zh) | 2018-01-08 | 2018-01-08 | 任务处理方法、装置、电子终端及可读存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN108255607A (zh) |
WO (1) | WO2019134304A1 (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109298942A (zh) * | 2018-10-09 | 2019-02-01 | Oppo广东移动通信有限公司 | 图片处理方法及电子装置 |
CN109814994A (zh) * | 2019-01-03 | 2019-05-28 | 福建天泉教育科技有限公司 | 一种动态调度线程池的方法及终端 |
CN110489242A (zh) * | 2019-09-24 | 2019-11-22 | 深圳前海微众银行股份有限公司 | 分布式数据计算方法、装置、终端设备及存储介质 |
CN111274038A (zh) * | 2020-01-22 | 2020-06-12 | 恩亿科(北京)数据科技有限公司 | 数据处理方法和装置、电子设备及计算机可读存储介质 |
CN111324387A (zh) * | 2020-01-20 | 2020-06-23 | 北京无限光场科技有限公司 | 应用任务的控制方法、装置、终端及系统 |
CN111831422A (zh) * | 2019-04-15 | 2020-10-27 | 大唐移动通信设备有限公司 | 一种任务处理方法及装置 |
CN112306646A (zh) * | 2020-06-29 | 2021-02-02 | 北京沃东天骏信息技术有限公司 | 用于处理事务的方法、装置、设备及可读存储介质 |
CN112579305A (zh) * | 2019-09-27 | 2021-03-30 | 北京国双科技有限公司 | 任务处理方法及装置、非易失性存储介质和设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101308468A (zh) * | 2008-06-13 | 2008-11-19 | 南京邮电大学 | 网格计算环境下的作业跨域控制方法 |
CN103699441A (zh) * | 2013-12-05 | 2014-04-02 | 深圳先进技术研究院 | 基于任务粒度的MapReduce报表任务执行方法 |
CN104035817A (zh) * | 2014-07-08 | 2014-09-10 | 领佰思自动化科技(上海)有限公司 | 大规模集成电路物理实现的分布式并行计算方法及其系统 |
CN105224289A (zh) * | 2014-07-03 | 2016-01-06 | 阿里巴巴集团控股有限公司 | 一种活动信息匹配方法及设备 |
CN107396331A (zh) * | 2017-09-19 | 2017-11-24 | 马上消费金融股份有限公司 | 一种基于优先级队列的短信发送方法及装置 |
-
2018
- 2018-01-08 CN CN201810016430.0A patent/CN108255607A/zh active Pending
- 2018-04-23 WO PCT/CN2018/084111 patent/WO2019134304A1/zh active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101308468A (zh) * | 2008-06-13 | 2008-11-19 | 南京邮电大学 | 网格计算环境下的作业跨域控制方法 |
CN103699441A (zh) * | 2013-12-05 | 2014-04-02 | 深圳先进技术研究院 | 基于任务粒度的MapReduce报表任务执行方法 |
CN105224289A (zh) * | 2014-07-03 | 2016-01-06 | 阿里巴巴集团控股有限公司 | 一种活动信息匹配方法及设备 |
CN104035817A (zh) * | 2014-07-08 | 2014-09-10 | 领佰思自动化科技(上海)有限公司 | 大规模集成电路物理实现的分布式并行计算方法及其系统 |
CN107396331A (zh) * | 2017-09-19 | 2017-11-24 | 马上消费金融股份有限公司 | 一种基于优先级队列的短信发送方法及装置 |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109298942A (zh) * | 2018-10-09 | 2019-02-01 | Oppo广东移动通信有限公司 | 图片处理方法及电子装置 |
CN109298942B (zh) * | 2018-10-09 | 2022-07-12 | Oppo广东移动通信有限公司 | 图片处理方法及电子装置 |
CN109814994A (zh) * | 2019-01-03 | 2019-05-28 | 福建天泉教育科技有限公司 | 一种动态调度线程池的方法及终端 |
CN109814994B (zh) * | 2019-01-03 | 2021-10-08 | 福建天泉教育科技有限公司 | 一种动态调度线程池的方法及终端 |
CN111831422A (zh) * | 2019-04-15 | 2020-10-27 | 大唐移动通信设备有限公司 | 一种任务处理方法及装置 |
CN111831422B (zh) * | 2019-04-15 | 2024-04-30 | 大唐移动通信设备有限公司 | 一种任务处理方法及装置 |
CN110489242A (zh) * | 2019-09-24 | 2019-11-22 | 深圳前海微众银行股份有限公司 | 分布式数据计算方法、装置、终端设备及存储介质 |
CN110489242B (zh) * | 2019-09-24 | 2024-01-26 | 深圳前海微众银行股份有限公司 | 分布式数据计算方法、装置、终端设备及存储介质 |
CN112579305A (zh) * | 2019-09-27 | 2021-03-30 | 北京国双科技有限公司 | 任务处理方法及装置、非易失性存储介质和设备 |
CN111324387A (zh) * | 2020-01-20 | 2020-06-23 | 北京无限光场科技有限公司 | 应用任务的控制方法、装置、终端及系统 |
CN111274038A (zh) * | 2020-01-22 | 2020-06-12 | 恩亿科(北京)数据科技有限公司 | 数据处理方法和装置、电子设备及计算机可读存储介质 |
CN112306646A (zh) * | 2020-06-29 | 2021-02-02 | 北京沃东天骏信息技术有限公司 | 用于处理事务的方法、装置、设备及可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2019134304A1 (zh) | 2019-07-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108255607A (zh) | 任务处理方法、装置、电子终端及可读存储介质 | |
CN109471727A (zh) | 一种任务处理方法、装置及系统 | |
CN107231264A (zh) | 用于管理云服务器的容量的方法和装置 | |
CN105808328B (zh) | 任务调度的方法、装置和系统 | |
US10228974B2 (en) | Intelligent management of processing tasks on multi-tenant or other constrained data processing platform | |
EP3454210B1 (en) | Prescriptive analytics based activation timetable stack for cloud computing resource scheduling | |
US20140143773A1 (en) | Method and system for running a virtual appliance | |
CN108549583A (zh) | 大数据处理方法、装置、服务器及可读存储介质 | |
US20150355943A1 (en) | Weighted stealing of resources | |
CN113282795B (zh) | 数据结构图生成及更新方法、装置、电子设备及存储介质 | |
CN109840142A (zh) | 基于云监控的线程控制方法、装置、电子设备及存储介质 | |
CN103701934A (zh) | 一种资源优化调度方法及虚拟机宿主机优化选择方法 | |
CN113495779A (zh) | 一种任务调度方法和装置、任务执行系统 | |
CN109840141A (zh) | 基于云监控的线程控制方法、装置、电子设备及存储介质 | |
CN102629220A (zh) | 一种动态任务分配管理方法 | |
CN108153877A (zh) | 数据字典展示方法、装置、终端设备及存储介质 | |
US20060149611A1 (en) | Peer to peer resource negotiation and coordination to satisfy a service level objective | |
CN110457124A (zh) | 针对业务线程的处理方法及其装置、电子设备和介质 | |
WO2011041253A1 (en) | Attributing causality to program execution capacity modifications and dynamically modifying program execution capacity | |
CN106779439A (zh) | 一种任务分发方法及装置 | |
CN109102200A (zh) | 一种定时任务处理方法及装置 | |
CN104123303A (zh) | 一种提供数据的方法及装置 | |
CN110297708A (zh) | 一种出票处理及调度的方法、服务器及出票平台 | |
CN106775894A (zh) | 一种应用程序的运行方法及终端 | |
CN109634812A (zh) | Linux系统的进程CPU占用率控制方法、终端设备及存储介质 |
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: 20180706 |