一种任务执行方法和装置的制造方法

文档序号:8258142阅读:281来源:国知局
一种任务执行方法和装置的制造方法
【技术领域】
[0001]本发明涉及网络通信技术领域,特别是涉及一种任务执行方法和装置。
【背景技术】
[0002]在网络通信领域,客户端经常存在向服务器发送多条数据的需求。
[0003]现有客户端向服务器发送多条数据的过程具体可以包括:首先向服务器发送一条数据,在接收到服务器返回的响应信息后,再向服务器发送下一条数据。然而,受网络延迟、网络堵塞等因素的影响,从向服务器发送一条数据,到服务器返回响应信息,需要经历较长的时间,在该时间内客户端需要等待,这无疑影响了数据传输的效率。

【发明内容】

[0004]鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的一种任务执行方法和装置。
[0005]依据本发明的一个方面,提供了一种任务执行方法,包括:
[0006]将任务分解为多个子任务;
[0007]将所述多个子任务及其对应任务信息写入缓冲区;以及
[0008]利用多线程依据所述子任务对应任务信息执行所述缓冲区中子任务。
[0009]可选地,所述利用多线程依据所述子任务对应数据执行所述缓冲区中子任务的步骤,包括:
[0010]各线程在处于空闲状态时,扫描所述缓冲区;以及
[0011]在扫描到新的子任务时,从所述缓冲区中读取并执行所述新的子任务。
[0012]可选地,所述任务信息包括:任务标识;
[0013]则所述利用多线程依据所述子任务对应数据执行所述缓冲区中子任务的步骤,包括:
[0014]各线程扫描所述缓冲区;
[0015]在扫描到新的子任务时,各线程判断所述新的子任务的任务标识与自身是否匹配;以及
[0016]在所述新的子任务的任务标识与自身的线程标识匹配时,从所述缓冲区中读取并执行所述新的子任务。
[0017]可选地,所述任务信息包括:任务标识;
[0018]则所述将所述多个子任务及其对应任务信息写入缓冲区的步骤,包括:
[0019]将每个子任务写入与其对应任务标识相匹配的线程对应子缓冲区;
[0020]则所述利用多线程依据所述子任务对应数据执行所述缓冲区中子任务的步骤,包括:
[0021]各线程从对应子缓冲区中读取子任务及其对应任务信息,并依据所述子任务对应数据执行所述子任务。
[0022]可选地,所述子任务的任务标识与所述线程匹配包括:所述子任务的任务标识对于多线程数目的取模结果等于所述线程的线程标识。
[0023]根据本发明的另一方面,提供了一种任务执行装置,包括:
[0024]分解模块,用于将任务分解为多个子任务;
[0025]写入模块,用于将所述多个子任务及其对应任务信息写入缓冲区;以及
[0026]执行模块,用于利用多线程依据所述子任务对应任务信息执行所述缓冲区中子任务。
[0027]可选地,所述执行模块,包括:
[0028]第一扫描子模块,用于在各线程处于空闲状态时,扫描所述缓冲区;以及
[0029]第一读取子模块,用于在扫描到新的子任务时,从所述缓冲区中读取并执行所述新的子任务。
[0030]可选地,所述任务信息包括:任务标识;
[0031]则所述执行模块,包括:
[0032]第二扫描子模块,用于针对各线程扫描所述缓冲区;
[0033]判断子模块,用于在扫描到新的子任务时,针对各线程判断所述新的子任务的任务标识与自身是否匹配;以及
[0034]第二读取子模块,用于在所述新的子任务的任务标识与自身的线程标识匹配时,从所述缓冲区中读取并执行所述新的子任务。
[0035]可选地,所述任务信息包括:任务标识;
[0036]则所述写入模块,具体用于将每个子任务写入与其对应任务标识相匹配的线程对应子缓冲区;
[0037]则所述执行模块,包括:
[0038]第三读取子模块,用于针对各线程从对应子缓冲区中读取子任务及其对应任务信息,并依据所述子任务对应数据执行所述子任务。
[0039]可选地,所述子任务的任务标识与所述线程匹配包括:所述子任务的任务标识对于多线程数目的取模结果等于所述线程的线程标识。
[0040]根据本发明实施例的一种任务执行方法和装置,可以将负担较多同步操作的长任务分解为多个子任务,将所述多个子任务及其对应任务信息写入缓冲区,并利用多线程依据所述子任务对应任务信息执行所述缓冲区中子任务;因此,相对于现有方案执行一个同步操作并在等待结果返回后继续执行下一个同步操作,本发明实施例的多线程可以并行执行子任务对应的操作,因此,能够大大提升执行任务执行的效率。
[0041]并且,相对于现有方案在执行完一个同步操作后等待结果返回的操作,本发明实施例的单个线程在执行完一个同步操作后,无需等待即可继续执行下一个同步操作,等待结果返回的操作可由所述缓冲区的后台来执行,因此,节省等待结果返回的操作所花费的时间,从而能够进一步提尚任务执彳丁的效率
[0042]上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的【具体实施方式】。
【附图说明】
[0043]通过阅读下文可选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出可选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
[0044]图1示出了根据本发明一个实施例的一种任务执行方法的步骤流程示意图;
[0045]图2示出了根据本发明一个实施例的一种缓冲区的结构示意图;
[0046]图3示出了根据本发明一个实施例的一种任务执行方法的步骤流程示意图;
[0047]图4示出了根据本发明一个实施例的一种任务执行方法的步骤流程示意图;
[0048]图5示出了根据本发明一个实施例的一种任务执行方法的步骤流程示意图;以及
[0049]图6示出了根据本发明一个实施例的一种任务执行装置的结构示意图。
【具体实施方式】
[0050]下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
[0051 ] 参照图1,示出了根据本发明一个实施例的一种任务执行方法的步骤流程示意图,具体可以包括如下步骤:
[0052]步骤101、将任务分解为多个子任务;
[0053]步骤102、将所述多个子任务及其对应任务信息写入缓冲区;以及
[0054]步骤103、利用多线程依据所述子任务对应任务信息执行所述缓冲区中子任务。
[0055]本发明实施例中,任务可以为负担较多同步操作的长任务,可以根据长任务的实际情况将其分解为多个子任务,例如将长任务中的一个同步操作对应一个子任务等等,本发明对将任务分解为多个子任务的具体方法不加以限制。任务信息可以包括任务标识、任务数据等信息,本发明实施例对具体的任务信息不加以限制。
[0056]本发明实施例中,缓冲区可用于存储多个子任务及其对应任务信息。参照图2,示出了根据本发明一个实施例的一种缓冲区的结构示意图,其具体可以包括写指针和读指针,其中,写指针可用于将所述子任务1、子任务2、子任务3等多个子任务及其对应任务信息写入缓冲区,读指针可用于从所述缓冲区读取子任务及其对应任务信息,在实际应用中,各线程可以通过所述读指针来实现子任务及其对应任务信息的读取,并依据所述子任务对应任务信息执行所读取的子任务。
[0057]以客户端向服务器发送多条数据的任务为例,可以将该任务分解为多个子任务,其中的一个子任务用于发送一条数据,那么,可以利用多线程来发送上述多条数据,假设多线程数目为N,则N个线程可以并行向服务器发送多条数据,因此,相对于现有方案中一次向服务器发送一条数据,能够大大提高数据传输的效率。并且,相对于现有方案在从向服务器发送一条数据到服务器返回响应信息这段时间内等待,本发明实施例的单个线程在向服务器发送一条数据后,无需等待即可继续向服务器发送下一条数据,从服务器接收响应信息的操作可由所述缓冲区的后台来执行,因此,能够进一步提高数据传输的效率。
[0058]上述客户端向服务器发送多条数据的任务涉及相同的向服务器发送一条数据的同步操作。可以理解,本发明实施例的任务还可以涉及不同的同步操作,如用户A从早晨起床到出门前要完成如下任务:叠被子用3分钟、刷牙和洗脸4分钟、做饭10分钟、吃早饭8分钟、整理书包2分钟等等,因此可以将上述任务分解为叠被子、刷牙、洗脸、做饭、吃早饭和整理书包等不同的同步操作,并利用多线程来并行执行所述不同的同步操作,从而提高任务执行效率。
[0059]综上,本发明实施例将负担较多同步操作的长任务分解为多个子任务,将所述多个子任务及其对应任务信息写入缓冲区,并利用多线程依据所述子任务对应任务信息执行所述缓冲区中子任务;相对于现有方案执行一个同步操作并在等待结果返回后继续执行下一个同步操作,本发明实施例
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1