一种任务处理方法及装置与流程

文档序号:11133575阅读:460来源:国知局
一种任务处理方法及装置与制造工艺

本发明涉及计算机技术领域,尤其涉及一种任务处理方法及装置。



背景技术:

资源是能够被线程处理的请求或计算单元等事物,不同的资源可以按照各自的特点进行分类。例如,简单的数字运算表达式可以被认为是一种资源,加法为一种资源,以及减法为一种资源等。

其中,每种资源都对应一个任务集合,任务集合中包括至少一个待处理任务。例如,加法资源对应一个加法任务集合,加法任务集合包括任务“2+3”和任务“4+5”。任务“2+3”为计算2与3的和,任务“4+5”为计算4与5的和。

其中,当计算机需要对一个资源对应的任务集合中的任务进行处理时,需要控制一个线程获取一个资源对应的任务集合中的一个任务,然后控制该线程对该任务进行处理。多个不同的线程不能同时分别处理同一个资源对应的任务集合中的多个任务,即,在任意时刻,任一个资源对应的任务集合中只有一个任务能够被处理。

其中,为了对待处理任务进行处理,终端控制一个线程遍历所有资源对应的任务集合,当遍历到一个资源对应的任务集合时,判断该任务集合中是否存在正在被其他线程处理的任务。如果该任务集合中不存在正在被其他线程处理的任务,则从该任务集合中获取一个任务进行处理。如果该任务集合中存在正在被其他线程处理的任务;则遍历下一个资源对应的任务集合,判断下一个任务集合中是否存在正在被其他线程处理的任务,直至找到一个包括的任务均未正在被其他线程处理的任务集合为止。

然而,发明人发现,在现有技术中,在控制线程处理任务的过程中的大部分时间花费在了遍历任务集合上,从而导致需要花费很多时间才能处理完所有任务集合中的任务,处理效率较低。



技术实现要素:

为克服相关技术中存在的问题,本发明提供一种任务处理方法及装置。

根据本发明实施例的第一方面,提供一种任务处理方法,所述方法包括:

控制一个线程从预设资源标识列表中提取出一个资源的标识;所述预设资源标识表 中存储了至少一个资源的标识,每个所述资源的标识对应一个任务集合,所述任务集合中包括至少一个待处理任务,所述任务集合中包括的所有待处理任务均未正在被处理;

控制所述线程从所述资源的标识对应的任务集合中获取预设个数个待处理任务;

控制所述线程对所述预设个数个待处理任务进行处理。

其中,所述控制所述线程从所述资源标识对应的任务集合中获取预设个数个任务,包括:

控制所述线程从所述资源标识对应的任务集合中,获取存储时间最早的预设个数个待处理的任务。

其中,所述控制所述线程从所述资源标识对应的任务集合中,获取存储时间最早的预设个数个待处理的任务,包括:

控制所述线程获取本地存储的所述任务集合对应的、任务标识与存储时间之间的对应关系;

获取本地的当前时间;

在所述对应关系中查找与所述当前时间距离最远的预设个数个存储时间对应的任务标识;

从所述任务集合中分别获取查找到的每个所述任务标识对应的待处理任务。

进一步地,所述方法还包括:

当对所述预设个数个待处理任务处理完毕时;从所述任务集合中删除所述预设个数个待处理任务;

判断所述任务集合中是否存在待处理任务;

当所述任务集合中存在待处理任务时,则将所述资源的标识存储在所述资源标识列表中;

当所述任务集合中不存在待处理任务时,删除所述资源的标识对应的任务集合。

进一步地,所述方法还包括:

接收携带待存储任务和目标资源的标识存储请求;所述存储请求用于将待存储任务存储至目标资源的标识对应的任务集合中;

判断本地是否存在所述目标资源的标识对应的任务集合;

当本地存在所述目标资源的标识对应的任务集合时,将所述待存储任务存储在目标资源标识对应的任务集合中;

当本地不存在所述目标资源的标识对应的任务集合时,创建所述目标资源的标识对应的任务集合;将所述待存储任务存储在所述创建的任务集合中;以及将所述目标资源 的标识存储在所述预设资源标识列表中。

根据本发明实施例的第二方面,提供一种任务处理装置,所述装置包括:

提取模块,用于控制一个线程从预设资源标识列表中提取出一个资源的标识;所述预设资源标识表中存储了至少一个资源的标识,每个所述资源的标识对应一个任务集合,所述任务集合中包括至少一个待处理任务,所述任务集合中包括的所有待处理任务均未正在被处理;

获取模块,用于控制所述线程从所述资源的标识对应的任务集合中获取预设个数个待处理任务;

处理模块,用于控制所述线程对所述预设个数个待处理任务进行处理。

其中,所述获取模块包括:

获取单元,用于控制所述线程从所述资源标识对应的任务集合中,获取存储时间最早的预设个数个待处理的任务。

其中,所述获取单元包括:

第一获取子单元,用于控制所述线程获取本地存储的所述任务集合对应的、任务标识与存储时间之间的对应关系;

第二获取子单元,用于获取本地的当前时间;

查找子单元,用于在所述对应关系中查找与所述当前时间距离最远的预设个数个存储时间对应的任务标识;

第三获取子单元,用于从所述任务集合中分别获取查找到的每个所述任务标识对应的待处理任务。

进一步地,所述装置还包括:

第一删除模块,用于当对所述预设个数个待处理任务处理完毕时;从所述任务集合中删除所述预设个数个待处理任务;

第一判断模块,用于判断所述任务集合中是否存在待处理任务;

第一存储模块,用于当所述任务集合中存在待处理任务时,则将所述资源的标识存储在所述资源标识列表中;

第二删除模块,用于当所述任务集合中不存在待处理任务时,删除所述资源的标识对应的任务集合。

其中,所述装置还包括:

接收模块,用于接收携带待存储任务和目标资源的标识存储请求;所述存储请求用于将待存储任务存储至目标资源的标识对应的任务集合中;

第二判断模块,用于判断本地是否存在所述目标资源的标识对应的任务集合;

第二存储模块,用于当本地存在所述目标资源的标识对应的任务集合时,将所述待存储任务存储在目标资源标识对应的任务集合中;

创建模块,用于当本地不存在所述目标资源的标识对应的任务集合时,创建所述目标资源的标识对应的任务集合;将所述待存储任务存储在所述创建的任务集合中;以及将所述目标资源的标识存储在所述预设资源标识列表中。

本发明的实施例提供的技术方案可以包括以下有益效果:在本发明中,控制一个线程从预设资源标识列表中提取出一个资源的标识;所述预设资源标识表中存储了至少一个资源的标识,每个所述资源的标识对应一个任务集合,所述任务集合中包括至少一个待处理任务;所述任务集合中包括的所有待处理任务均未正在被处理;控制所述线程从所述资源标识对应的任务集合中获取预设个数个待处理任务;控制所述线程对所述预设个数个待处理任务进行处理。在发明实施例中,无需花费大量时间遍历任务集合,通过预设资源标识列表就可以直接、并且迅速获取到一个包括的待处理任务均未正在被处理的任务集合,再从该任务集合中获取一个待处理任务进行处理。整个处理过程中无需花费用于遍历任务集合的时间,因此,相对于现有技术,本发明实施例可以提高处理效率。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。

图1是根据一示例性实施例示出的一种任务处理方法的流程图。

图2是根据一示例性实施例示出的一种任务处理方法的流程图。

图3是根据一示例性实施例示出的一种任务处理装置的框图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。

图1是根据一示例性实施例示出的一种任务处理方法的流程图,本发明实施例的执 行主体可以为终端等,如图1所示,该方法包括以下步骤。

在步骤S101中,控制一个线程从预设资源标识列表中提取出一个资源的标识;

其中,该线程为空闲的线程,即,该线程为目前未正在处理任何任务。

预设资源标识表中存储了至少一个资源的标识,每个资源的标识对应一个任务集合,任务集合中包括至少一个待处理任务;所述任务集合中包括的所有待处理任务均未正在被处理;

在本发明实施例中,终端从预设资源标识列表中提取出一个资源的标识之后,预设资源标识列表中就不再存在该一个资源的标识。

在步骤S102中,控制该线程从该资源的标识对应的任务集合中获取预设个数个待处理任务;

控制该线程获取与该资源标识相对应的任务集合,然后从该任务集合中获取预设个数个待处理任务。

预设个数可以为1、2或3等,本发明对此不加以限定。在本发明实施例中,预设个数优选为1。这样,终端可以控制该线程从该任务集合中获取1个任务。

其中,在本发明实施例中,每个任务集合中的任务是终端事先添加的。

终端可以接收其他设备发送的携带待存储任务和目标资源的标识存储请求,也可以接收用户输入的携带待存储任务和目标资源的标识存储请求;该存储请求用于将待存储任务存储至目标资源的标识对应的任务集合中;

当终端接收到携带待存储任务和目标资源的标识存储请求时,判断本地是否存在目标资源的标识对应的任务集合;其中,本地存在的每个任务集合分别对应的资源的标识都存储在预设标识列表中,因此可以在预设资源列表中查找是否存在目标资源的标识,如果预设标识列表中存在目标资源的标识,则确定本地存在目标资源的标识对应的任务集合。

当确定出本地存在目标资源的标识对应的任务集合时,将待存储任务存储在目标资源标识对应的任务集合中;

然而,当确定出本地不存在目标资源的标识对应的任务集合时,创建目标资源的标识对应的任务集合;将待存储任务存储在创建的任务集合中;其次,为了使得之后终端控制线程能够获取到该待存储任务,需要将目标资源的标识存储在预设资源标识列表中。

其中,终端在该任务集合中存储的每个任务的存储时间都不同,终端会优先处理存储时间最早的任务,

因此,在本步骤,可以控制线程从资源标识对应的任务集合中,获取存储时间最早 的预设个数个待处理的任务,具体获取过程包括如下流程:

11)、控制该线程获取本地存储的该任务集合对应的、任务标识与存储时间之间的对应关系;

其中,任一个任务集合都对应的一个任务标识与存储时间之间的对应关系。该对应关系中包括的所有任务标识对应的任务都存储在该任务集合中。该对应关系中的任一条记录中的存储时间为将该记录中的任务标识对应的任务存储在该任务集合中的存储时间。对于其他每一任务集合,同样如此。

其中,每一个任务都有一个任务标识,用于唯一标识任务。

当终端将一个任务存储在该任务集合时,会获取终端的当前时刻,并作为存储该任务的存储时刻,然后将该任务的任务标识和该存储时间作为一条记录存储在该任务集合都对应的、任务标识与存储时间之间的对应关系中。之后当终端控制处理完该任务时,会从上述对应关系中删除包括该任务的任务标识的记录。

12)、获取本地的当前时间;

获取终端本地的当前时间。

13)、在该对应关系中查找与当前时间距离最远的预设个数个存储时间对应的任务标识;

其中,可以计算上述对应关系中的每一条记录中包括存储时间与当前时间之间的差值,获取与当前时间之间的差值最大的预设个数个存储时间,从上述对应关系中分别查找获取的每一个存储时间对应的任务标识。

14)、从任务集合中分别获取查找到的每个任务标识对应的待处理任务。

如此实现从资源标识对应的任务集合中,获取存储时间最早的预设个数个待处理的任务。

在步骤S103中,控制该线程对该预设个数个待处理任务进行处理。

在本发明图1所示的实施例中,控制一个线程从预设资源标识列表中提取出一个资源的标识;所述预设资源标识表中存储了至少一个资源的标识,每个所述资源的标识对应一个任务集合,所述任务集合中包括至少一个待处理任务;所述任务集合中包括的所有待处理任务均未正在被处理;控制所述线程从所述资源标识对应的任务集合中获取预设个数个待处理任务;控制所述线程对所述预设个数个待处理任务进行处理。在发明实施例中,无需花费大量时间遍历任务集合,通过预设资源标识列表就可以直接、并且迅速获取到一个包括的待处理任务均未正在被处理的任务集合,再从该任务集合中获取一个待处理任务进行处理。整个处理过程中无需花费用于遍历任务集合的时间,因此,相 对于现有技术,本发明实施例可以提高处理效率。

在本发明又一实施例中,参见图2,该方法还包括:

在步骤S201中,当对该预设个数个待处理任务处理完毕时,从该任务集合中删除该预设个数个待处理任务;

在本发明实施例中,当处理完该待处理任务时,如果不从该任务集合中删除该待处理任务,则之后终端控制其他线程从预设资源标识列表中提取出该资源的标识后,就会根据该资源的标识获取到该任务集合,这样很可能就会从该任务集合中再次获取到该任务,进而就会控制线程再次对该任务进行处理。然而,由于已经对该任务处理过了,无需再次对该任务进行处理,这样就会造成重复处理,浪费系统资源。

因此,为了避免重复处理该任务而浪费系统资源,当对预设个数个待处理任务处理完毕时,需要从任务集合中删除该预设个数个待处理任务。

在步骤S202中,判断该任务集合中是否存在待处理任务;

当该任务集合中存在待处理任务时,在步骤S203中,则将该资源的标识存储在资源标识列表中;

在本发明实施例中,如果该任务集合中还存在一个或多个待处理任务,则之后需要对该任务集合中的待处理任务继续进行处理,因此,需要将资源的标识重新存储在资源标识列表中,这样,之后终端控制一个线程从预设资源标识列表中就可以提取出该资源的标识,进而可以根据该资源的标识获取该任务集合,并对该任务集合中的待处理任务进行处理。

否则,如果未将资源的标识重新存储在资源标识列表中,之后终端控制一个线程在预设资源标识列表中就查找不到该资源的标识,也就无法根据该资源的标识获取该任务集合,以及就不会该对该任务集合中的待处理任务进行处理。

当该任务集合中不存在待处理任务时,在步骤S204中,删除该资源的标识对应的任务集合。

其中,由于未存储待处理任务的任务集合也需要占用内存空间,因此,当该任务集合中不存在待处理任务时,则可以确定该任务集合已经没有作用的,因此,为了节省存储空间,可以删除资源标识对应的任务集合。

图3是根据一示例性实施例示出的一种任务处理装置的框图。参照图3,该装置包括:

提取模块11,用于控制一个线程从预设资源标识列表中提取出一个资源的标识;所述预设资源标识表中存储了至少一个资源的标识,每个所述资源的标识对应一个任务集合,所述任务集合中包括至少一个待处理任务,所述任务集合中包括的所有待处理任务均未正在被处理;

获取模块12,用于控制所述线程从所述资源的标识对应的任务集合中获取预设个数个待处理任务;

处理模块13,用于控制所述线程对所述预设个数个待处理任务进行处理。

在本发明图3所示的实施例中,控制一个线程从预设资源标识列表中提取出一个资源的标识;所述预设资源标识表中存储了至少一个资源的标识,每个所述资源的标识对应一个任务集合,所述任务集合中包括至少一个待处理任务;所述任务集合中包括的所有待处理任务均未正在被处理;控制所述线程从所述资源标识对应的任务集合中获取预设个数个待处理任务;控制所述线程对所述预设个数个待处理任务进行处理。在发明实施例中,无需花费大量时间遍历任务集合,通过预设资源标识列表就可以直接、并且迅速获取到一个包括的待处理任务均未正在被处理的任务集合,再从该任务集合中获取一个待处理任务进行处理。整个处理过程中无需花费用于遍历任务集合的时间,因此,相对于现有技术,本发明实施例可以提高处理效率。

其中,所述获取模块12包括:

获取单元,用于控制所述线程从所述资源标识对应的任务集合中,获取存储时间最早的预设个数个待处理的任务。

其中,所述获取单元包括:

第一获取子单元,用于控制所述线程获取本地存储的所述任务集合对应的、任务标识与存储时间之间的对应关系;

第二获取子单元,用于获取本地的当前时间;

查找子单元,用于在所述对应关系中查找与所述当前时间距离最远的预设个数个存储时间对应的任务标识;

第三获取子单元,用于从所述任务集合中分别获取查找到的每个所述任务标识对应的待处理任务。

进一步地,所述装置还包括:

第一删除模块,用于当对所述预设个数个待处理任务处理完毕时;从所述任务集合中删除所述预设个数个待处理任务;

第一判断模块,用于判断所述任务集合中是否存在待处理任务;

第一存储模块,用于当所述任务集合中存在待处理任务时,则将所述资源的标识存储在所述资源标识列表中;

第二删除模块,用于当所述任务集合中不存在待处理任务时,删除所述资源的标识对应的任务集合。

进一步地,所述装置还包括:

接收模块,用于接收携带待存储任务和目标资源的标识存储请求;所述存储请求用于将待存储任务存储至目标资源的标识对应的任务集合中;

第二判断模块,用于判断本地是否存在所述目标资源的标识对应的任务集合;

第二存储模块,用于当本地存在所述目标资源的标识对应的任务集合时,将所述待存储任务存储在目标资源标识对应的任务集合中;

创建模块,用于当本地不存在所述目标资源的标识对应的任务集合时,创建所述目标资源的标识对应的任务集合;将所述待存储任务存储在所述创建的任务集合中;以及将所述目标资源的标识存储在所述预设资源标识列表中。

关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。

本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。

应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1