基于队列的多任务并行数据处理方法、装置、介质和设备制造方法及图纸

技术编号:16885793 阅读:21 留言:0更新日期:2017-12-27 03:35
本公开是关于一种基于队列的多任务并行数据处理方法、装置、存储介质和电子设备。该方法包括:接收多个终端设备发来的设备信息,为每个所述设备信息申请分配缓冲队列内不同的写入位置;在所述缓冲队列的所述不同的写入位置,同时将每个所述设备信息分别写入所述缓冲队列内对应的不同位置处。本公开可以实现多个生产者线程并行批量同时往队列里存放数据,提高生产者线程的并发执行,缩短服务器响应终端设备上报数据的回复时间,同时提高了服务器处理终端设备信息的处理量,并且可以无阻塞批量提交任务到队列中,进而可以提高系统性能。

Queuing based multitask parallel data processing methods, devices, media, and devices

The present disclosure is about a multitask parallel data processing method, device, storage medium and electronic device based on a queue. The method comprises: receiving a plurality of terminal equipment to send information, information for each of the equipment for writing position distribution in different buffer queue in the buffer queue; the different writing position, at the same time, each of the equipment information are written to the different positions of the buffer queue corresponding to the. The public can implement multiple parallel batch into the producer thread queue to store the data, improve the concurrent execution thread, shorten the recovery time of the report server response data terminal equipment, and improve the processing capacity of information processing terminal server, and can submit tasks to the non blocking Batch Queue, which can improve the performance of the system.

【技术实现步骤摘要】
基于队列的多任务并行数据处理方法、装置、介质和设备
本公开涉及计算机
,尤其涉及一种基于队列的多任务并行数据处理方法、基于队列的多任务并行数据处理装置、以及实现所述基于队列的多任务并行数据处理方法的计算机可读存储介质和电子设备。
技术介绍
随着智能云系统中远程终端设备如家用智能电器的大量增加,系统服务器接收到设备上报信息的数量也随着而迅速增大。一般在服务器上会提供多个生产者线程来处理智能设备上报的信息,同时会有多个消费者线程根据用户智能设备上报的信息而执行相应的操作逻辑。为了提高系统的响应速度,通常服务器会基于共享队列来与生产者线程和消费者线程交互,以控制多个设备的如状态任务的生成,或者实现对共享队列里任务的添加和删除等操作。相关技术中是通过加锁的方式,以防止多个线程同时对共享队列进行修改。这也导致了在多个线程同时对设备的任务进行提交时,只能有一个线程对该队列进行修改,而其他的生产者线程和消费者线程必须等待此提交线程完成对队列的修改后,才可以对该队列进行修改。比如生产者线程修改完后,根据队列大小从生产者线程和其它消费者线程中选一个线程,进而根据选取的线程进行系统调用,唤醒该线程以继续执行相应操作。但是,目前相关技术中依然存在一些问题,例如,多个生产者线程难以无阻塞批量同时提交任务到队列中,也即多个生产者线程的并发执行难以实现,导致增加了服务器响应终端设备上报数据的回复时间,且服务器处理终端设备信息的处理量有限,系统性能受限。因此,有必要提供一种新的技术方案改善上述方案中存在的一个或者多个问题。需要说明的是,在上述
技术介绍
部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
技术实现思路
本公开的目的在于提供一种基于队列的多任务并行数据处理方法、基于队列的多任务并行数据处理装置、以及实现所述基于队列的多任务并行数据处理方法的计算机可读存储介质和电子设备,进而至少在一定程度上克服由于相关技术的限制和缺陷而导致的一个或者多个问题。本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。根据本公开实施例的第一方面,提供一种基于队列的多任务并行数据处理方法,该方法包括:接收多个终端设备发来的设备信息,为每个所述设备信息申请分配缓冲队列内不同的写入位置;在所述缓冲队列的所述不同的写入位置,同时将每个所述设备信息分别写入所述缓冲队列内对应的不同位置处。本公开的一种示例性实施例中,每个所述设备信息对应一第一线程;所述为每个所述设备信息申请分配缓冲队列内不同的写入位置包括:每个所述第一线程分别获取对应的每个所述设备信息待占用的队列空间大小对应的第一数值,以及所述缓冲队列当前可存储数据的第一位置;每个所述第一线程根据所述第一位置和每个所述设备信息的所述第一数值计算分配得到每个所述设备信息各自对应的写入位置。本公开的一种示例性实施例中,所述每个所述第一线程根据所述第一位置和每个所述设备信息的所述第一数值计算分配得到每个所述设备信息各自对应的写入位置包括:调用比较并交换CAS(CompareAndSwap)操作执行每个所述第一线程,以使当前仅有一个第一线程执行成功而为对应的一个所述设备信息分配到对应的写入位置;将该一个所述设备信息成功分配到的写入位置更新为所述第一位置,重新调用所述CAS操作重复执行以为剩余的设备信息分配到对应的写入位置。本公开的一种示例性实施例中,该方法还包括:在调用CAS操作执行每个所述第一线程前,判断当前的所述第一位置是否已被更改;若是则重新为每个所述设备信息申请分配所述缓冲队列内对应的写入位置;若否则调用CAS操作执行每个所述第一线程。本公开的一种示例性实施例中,该方法还包括:在调用CAS操作执行每个所述第一线程之前,判断当前所述缓冲队列中是否有预设可用空间,若是则调用CAS操作执行每个所述第一线程。本公开的一种示例性实施例中,该方法还包括:在所述缓冲队列的每一写入位置处写入对应的设备信息后,通过所述CAS操作修改预设指示值;其中,所述预设指示值用于表征当前所述缓冲队列中已写入设备信息的位置。本公开的一种示例性实施例中,该方法还包括:在所述缓冲队列的每一写入位置处写入对应的设备信息时,第二线程同时从所述缓冲队列中读取已写入的所述设备信息。本公开的一种示例性实施例中,所述第二线程同时从所述缓冲队列中读取已写入的所述设备信息包括:获取所述缓冲队列中当前已读取设备信息的第二位置,将所述第二位置加一得到第三位置;判断所述第三位置是否小于等于所述缓冲队列当前已写入设备信息的位置;若是则从所述第三位置读取相应的设备信息,并以该第三位置来更新所述第二位置。根据本公开实施例的第二方面,提供一种基于队列的多任务并行数据处理装置,该装置包括:位置分配模块,用于接收多个终端设备发来的设备信息,为每个所述设备信息申请分配缓冲队列内不同的写入位置;信息写入模块,用于在所述缓冲队列的所述不同的写入位置,同时将每个所述设备信息分别写入所述缓冲队列内对应的不同位置处。根据本公开实施例的第三方面,提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述任意一个实施例中所述基于队列的多任务并行数据处理方法的步骤。根据本公开实施例的第四方面,提供一种电子设备,包括:处理器;以及存储器,用于存储所述处理器的可执行指令;其中,所述处理器配置为经由执行所述可执行指令来执行上述任意一个实施例中所述基于队列的多任务并行数据处理方法的步骤。本公开的实施例提供的技术方案可以包括以下有益效果:本公开的一种实施例中,通过上述基于队列的多任务并行数据处理方法及装置,为每个所述设备信息申请分配缓冲队列内不同的写入位置,然后在所述缓冲队列的所述不同的写入位置,可以同时将每个所述设备信息分别写入缓冲队列内对应的不同位置处;这样,一方面,采用预分配可插入信息元素的位置方式来实现多个生产者线程可以并行批量同时往队列里放元素,提高生产者线程的并发执行,缩短服务器响应终端设备上报数据的回复时间;另一方面,提高了服务器处理终端设备信息的处理量,并且可以无阻塞批量提交任务到队列中,进而可以提高系统性能。应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。附图说明此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1示意性示出本公开示例性实施例中基于队列的多任务并行数据处理方法一流程图;图2示意性示出本公开示例性实施例中一应用场景示意图;图3示意性示出本公开示例性实施例中基于队列的多任务并行数据处理方法二流程图;图4示意性示出本公开示例性实施例中基于队列的多任务并行数据处理方法三流程图;图5示意性示出本公开示例性实施例中基于队列的多任务并行数据处理方法四流程图;图6示意性示出本公开示例性实施例中基于队列的多任务并行数据处理方法五流程图;图7示意性示出本公开示例性实施例中一缓冲队列空间示意图;图8示意性示出本公开示例性实施例中生产本文档来自技高网
...
基于队列的多任务并行数据处理方法、装置、介质和设备

【技术保护点】
一种基于队列的多任务并行数据处理方法,其特征在于,该方法包括:接收多个终端设备发来的设备信息,为每个所述设备信息申请分配缓冲队列内不同的写入位置;在所述缓冲队列的所述不同的写入位置,同时将每个所述设备信息分别写入所述缓冲队列内对应的不同位置处。

【技术特征摘要】
1.一种基于队列的多任务并行数据处理方法,其特征在于,该方法包括:接收多个终端设备发来的设备信息,为每个所述设备信息申请分配缓冲队列内不同的写入位置;在所述缓冲队列的所述不同的写入位置,同时将每个所述设备信息分别写入所述缓冲队列内对应的不同位置处。2.根据权利要求1所述基于队列的多任务并行数据处理方法,其特征在于,每个所述设备信息对应一第一线程;所述为每个所述设备信息申请分配缓冲队列内不同的写入位置包括:每个所述第一线程分别获取对应的每个所述设备信息待占用的队列空间大小对应的第一数值,以及所述缓冲队列当前可存储数据的第一位置;每个所述第一线程根据所述第一位置和每个所述设备信息的所述第一数值计算分配得到每个所述设备信息各自对应的写入位置。3.根据权利要求2所述基于队列的多任务并行数据处理方法,其特征在于,所述每个所述第一线程根据所述第一位置和每个所述设备信息的所述第一数值计算分配得到每个所述设备信息各自对应的写入位置包括:调用比较并交换CAS操作执行每个所述第一线程,以使当前仅有一个第一线程执行成功而为对应的一个所述设备信息分配到对应的写入位置;将该一个所述设备信息成功分配到的写入位置更新为所述第一位置,重新调用所述CAS操作重复执行以为剩余的设备信息分配到对应的写入位置。4.根据权利要求3所述基于队列的多任务并行数据处理方法,其特征在于,该方法还包括:在调用CAS操作执行每个所述第一线程前,判断当前的所述第一位置是否已被更改;若是则重新为每个所述设备信息申请分配所述缓冲队列内对应的写入位置;若否则调用CAS操作执行每个所述第一线程。5.根据权利要求3所述基于队列的多任务并行数据处理方法,其特征在于,该方法还包括:在调用CAS操作执行每个所述第一线程之前,判断当前所述缓冲...

【专利技术属性】
技术研发人员:刘吉
申请(专利权)人:北京京东尚科信息技术有限公司北京京东世纪贸易有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1