数据并发处理方法、装置及系统、计算机设备及可读介质与流程

文档序号:18667704发布日期:2019-09-13 20:24阅读:169来源:国知局
数据并发处理方法、装置及系统、计算机设备及可读介质与流程

本发明涉及计算机应用技术领域,尤其涉及一种数据并发处理方法、装置及系统、计算机设备及可读介质。



背景技术:

数据并发处理与发送技术是指通过并发的方式,把多份数据进行处理,然后在把处理完的数据发送给其他服务的技术。

在现有的互联网技术中,有些数据需要经过一些步骤进行处理,然后再发送给其他服务。这类数据还有一个特点是,接收端只有接收到全部的被处理的数据,才可以组成一个有意义的数据单元供自己使用。例如一个包含图片名列表的json数据包,只把这个数据包发送给对方是没有什么用处的,因为对方得到的只是图片名列表。在这种情况下,只有把图片名对应的图片经过简单的处理之后先传给对方,然后再把这个json文件传给对方,对方才可以真正的组织出有意义的数据。现有技术中,最传统的做法是:把json中图片名列表对应的图片依次经过处理之后,和json一块儿打包发送给对方。这种方式在一个进程或者线程中,顺序处理所有任务。且现有的这种技术方案逻辑简单,实现起来比较容易。

但是上述技术方案实现时,需要将全部的任务都放一个进程或者线程中顺序处理,数据的传输时间会较长,无法满足实时性要求比较高的场景的需求。



技术实现要素:

本发明提供了一种数据并发处理方法、装置及系统、计算机设备及可读介质,用于缩短数据传输的时长,满足实时性要求比较高的场景的需求。。

本发明提供一种数据并发处理方法,所述方法包括:

设置待传输的目标事件对应的原子类型的参数,并初始化为0;

建立数据队列,所述数据队列用于存放所述目标事件中包括的n个数据的相关信息,各所述数据的相关信息中携带有所述原子类型的参数的地址信息,以由多个数据发送装置根据所述数据队列中所述n个数据的相关信息,并行向远端服务器发送对应的所述n个数据,且每个所述数据发送装置发送完一个所述数据后,根据所述原子类型的参数的地址信息对所述原子类型的参数累加1;

监控所述原子类型的参数的数值是否等于n;

若等于,确定所述目标事件中的所有数据发送完成。

本发明还提供一种数据并发处理方法,所述方法包括:

从待传输的目标事件的数据队列中获取数据的相关信息;所述数据队列为所述数据管理装置为所述目标事件建立的,用于存放所述目标事件中包括的n个所述数据的相关信息,各所述数据的相关信息中携带有原子类型的参数的地址信息;所述原子类型的参数为所述数据管理装置为所述目标事件设置的,并初始化为0;

根据所述数据的相关信息,获取对应的数据;

向远端服务器发送获取的所述数据;

根据所述原子类型的参数的地址信息,对原子类型的参数累加1。

本发明提供一种数据管理装置,所述装置包括:

设置模块,用于设置待传输的目标事件对应的原子类型的参数,并初始化为0;

建立模块,用于建立数据队列,所述数据队列用于存放所述目标事件中包括的n个数据的相关信息,所述数据的相关信息中携带有所述原子类型的参数的地址信息,以由多个数据发送装置根据所述数据队列中所述n个数据的相关信息,并行向远端服务器发送对应的所述n个数据,且每个所述数据发送装置发送完一个所述数据后,根据所述原子类型的参数的地址信息对所述原子类型的参数累加1;

监控模块,用于监控所述原子类型的参数的数值是否等于n;

确定模块,用于若监控到所述原子类型的参数的数值等于n,确定所述目标事件中的所有数据发送完成。

本发明还提供一种数据发送装置,所述装置包括:

获取模块,用于从待传输的目标事件的数据队列中获取数据的相关信息;所述数据队列为所述数据管理装置为所述目标事件建立的,用于存放所述目标事件中包括的n个所述数据的相关信息,各所述数据的相关信息中携带有原子类型的参数的地址信息;所述原子类型的参数为所述数据管理装置为所述目标事件设置的,并初始化为0;

所述获取模块,还用于根据所述数据的相关信息,获取对应的数据;

发送模块,用于向远端服务器发送获取的所述数据;

修改模块,用于根据所述原子类型的参数的地址信息,对原子类型的参数累加1。

本发明还提供一种数据并发处理系统,包括数据管理装置和多个数据发送装置,所述多个数据发送装置采用多线程并发的工作模式;各所述数据发送装置与所述数据管理装置通信连接;所述数据管理装置采用如上所述的数据管理装置;各所述数据发送装置采用如上所述的数据发送装置。

本发明还提供一种计算机设备,所述设备包括:

一个或多个处理器;

存储器,用于存储一个或多个程序;

当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如上所述的数据并发处理方法。

本发明还提供一种计算机可读介质,其上存储有计算机程序,该程序被处理器执行时实现如上所述的数据并发处理方法。

本发明的数据并发处理方法、装置及系统、计算机设备及可读介质,通过采用多个数据发送装置并行传输数据,能够有效地提高数据并发处理的效率,缩短数据传输的时长,满足实时性要求比较高的场景的需求;且本实施例通过设置待传输的目标事件对应的原子类型的参数,可以实现并行发送的多线程的互斥,能够有效的保证多个数据并发传输的准确性和传输效率。

【附图说明】

图1为本发明的数据并发处理方法实施例一的流程图。

图2为本发明的数据并发处理方法实施例二的流程图。

图3为本发明的数据并发处理方法的一种示例图。

图4为本发明的数据管理装置实施例的结构图。

图5为本发明的数据发送装置实施例的结构图。

图6为本发明的数据并发处理系统实施例的结构图。

图7为本发明的计算机设备实施例的结构图。

图8为本发明提供的一种计算机设备的示例图。

【具体实施方式】

为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。

图1为本发明的数据并发处理方法实施例一的流程图。如图1所示,本实施例的数据并发处理方法,具体可以包括如下步骤:

s100、设置待传输的目标事件对应的原子类型的参数,并初始化为0;

本实施例的数据并发处理方法,可以应用在一个事件中具有大量的待传输数据的场景下。例如可以在新零售这个场景下,该场景中有大量的监控事件需要传输到远端服务器中。且每个监控事件中除了包含各种算法的参数、置信度之外,还有大量的图片文件名。最终需要保证在远端服务器上,可以使用这些文件名,查看到对应图片的内容。所以这种情况下除了需要发送这些监控事件本身之外,还需要把其对应的图片传输到远端服务器上。本实施例的待传输的目标事件可以为上述场景下的监控事件。实际应用中,还可以为其他类似场景下的包含大量数据的事件信息,且事件信息中包含的大量数据中的每个数据又是独立。例如本实施例的待传输的目标事件中具体可以包括n个数据,每个数据可以为一个独立的个体。

本实施例中的数据可以为图片、语音或者文字等形式的数据。

需要说明的是,本实施例的目标事件中除了包括n个数据外,还可以包括数据之外的其他信息如包含的各种算法的参数、置信度等,以及每个数据的标识信息如名称等。且在本实施例的场景中,数据发送端可以先发送目标事件中的n个数据,确定n个数据发送完之后,再发送目标事件中数据之外的其他信息,使得远端服务器接收其他信息后,也有n个数据做支撑,这样接收到的目标事件就是完整的,后续可以对目标事件进行相应的后续操作。

本实施例的数据并发处理方法的执行主体可以为位于数据发送端的数据管理装置,该数据管理装置可以为一个独立的实体、或者也可以为主线程,用于对待发送的数据进行管理,便于以多线程方式工作的多个数据发送装置来对目标事件中的n个数据进行发送。

本实施例的数据并发处理方法中,首先需要设置目标事件对应的原子类型的参数,并初始化为0。本实施例的原子类型的参数具体可以为一个原子类型的字段。对于不同的编程语言,原子类型的字段的表示方式可以不相同。例如对于c++中的原子类型的字段,可以表示为std::atomic类型,其他语言中,可以采用相应的方式来表示。本实施例中的该原子类型的参数用于记录已发送成功的数据的数量。因此,在初始设置时,还未开始发送数据,需要将目标事件对应的原子类型的参数初始化为0。

s101、建立数据队列,该数据队列用于存放目标事件中包括的n个数据的相关信息,各数据的相关信息中携带有原子类型的参数的地址信息,以由多个数据发送装置根据数据队列中n个数据的相关信息,并行向远端服务器发送对应的n个数据,且每个数据发送装置发送完一个数据后,根据原子类型的参数的地址信息对原子类型的参数累加1;

本实施例中,由数据管理装置为每个目标事件建立对应的数据队列。该数据队列中按照顺序存放的是目标事件中n个数据的相关信息。本实施例中,数据队列中的n个数据的相关信息可以为数据本身,但是数据本身所占的空间较大,实际应用中,可以不是数据本身,而是数据的相关参数。但是数据发送装置根据每个数据的相关信息可以获取到对应的数据。例如,该数据的相关信息可以为数据的地址信息,或者为存有数据地址的一个地址信息,或者还可以为能够指向数据地址的指针,或者是能够指向存有数据地址的一个地址的指针,还可以为能够查到数据的其他信息,在此不再一一举例赘述。

本实施例的多个数据发送装置可以并行工作,相当于多个线程。每个数据发送装置工作时,从数据队列中获取一个数据的相关信息,然后根据该数据的相关信息,获取相应的数据,并发送,并在发送完后,每个数据发送装置还可以根据数据的相关信息中携带的原子类型的参数的地址信息,访问目标事件对应的原子类型的参数,将其累加1。

本实施例的原子类型的参数有一个特性,可以实现并行发送的多线程的互斥,使得不同的数据发送装置无法同时对原子类型的参数进行修改。本实施例的数据发送装置发送n个数据时,相当于多线程并行工作的模式。若一个数据发送装置发送完一个数据后,正在对原子类型的参数累加1时,而此时若另外一个数据发送装置也发送完一个数据,此时另一个数据发送装置需要等待前一个数据发送装置对原子类型的参数修改完后,才能对原子类型的参数累加1,而两个数据发送装置不能同时对原子类型的参数累加1,这样可以保证对已发送数据的准确监控,保证数据发送的准确性。

例如,步骤s100的一种具体实现方式可以为:数据管理装置在接收到一个目标事件后,可以为该目标事件分配事件内存空间,并在事件内存空间中存储目标事件的信息,并在事件内存空间中设置原子类型的参数,并初始化为0;其中目标事件的信息中包括n个数据以及数据之外的其他信息。此时原子类型的参数的地址信息也是事件内存空间的地址信息。

对应地,步骤s101的一种具体实现方式可以包括如下步骤:

(a)根据目标事件的信息,为目标事件的n个数据中的每个数据分配数据内存空间,在数据内存空间中存储对应的数据的标识信息和事件内存空间的地址信息;

其中数据的标识信息可以为数据的名称或者id等。

(b)将n个数据的数据内存空间的地址信息存入一队列中,作为数据队列,以由多个数据发送装置依次根据数据队列中各个数据内存空间的地址信息获取对应的数据,并行向远端服务器发送,且每个数据发送装置发送完一个数据后,根据事件内存空间的地址信息,对存储的原子类型的参数累加1。

该实现方式中,步骤s100相当于接收任务,在接收到一个目标事件后,可以为该目标事件分配事件内存空间,并将目标事件信息存储在事件内存空间中,其中存储的信息包括目标事件信息中包括的n个数据以及数据之外的其他信息。

而步骤s101相当于分发任务,因为目标事件中包括n个数据,步骤s101等于将目标事件分发成n个数据的发送任务。数据管理装置此处为每个数据分配数据内存空间,但是在数据内存空间中并不存储数据本身,而是存储数据对应的数据的标识信息如名称和事件内存空间的地址信息,并将n个数据的数据内存空间的地址信息一起存入一队列中,作为数据队列。即本实现方式中,数据队列中的数据的相关信息为数据的数据内存空间的地址信息。这样,每个数据发送装置依次从数据队列中获取一个数据内存空间的地址信息后,先根据该数据内存空间的地址信息,从对应的该数据内存空间中获取对应的数据的标识信息,然后再根据事件内存空间的地址信息,从对应的事件内存空间中获取该数据的标识信息对应的数据,向远端服务器发送。发送完后,根据事件内存空间的地址信息,获取其中存储的原子类型的参数,并对其累加1。

s102、监控原子类型的参数的数值是否等于n;若等于,执行步骤s103;否则返回步骤s102继续监控;

s103、确定目标事件中的所有数据发送完成。

数据管理装置在多个数据发送装置开始发送数据后,需要不断地监控原子类型的参数的数值是否等于n;若等于n,就可以确定目标事件中的所有数据发送完成,否则继续监控。

对应地,步骤s103之后,还可以包括:向远端服务器发送目标事件中的数据之外的其他信息如包含的各种算法的参数、置信度等,以及每个数据的标识信息如名称等,便于远端服务器接收到目标事件的所有信息。即此时由数据管理装置直接向云端服务器发送目标事件中数据之外的其他信息。

可选地,本实施例的数据管理装置采用线程来实现时,其中步骤s100也可以采用接收任务的接收线程来实现,而步骤s101-103采用用于管理数据的主线程来实现。此时接收线程用于为接收待传输的目标事件的主任务,为每个待传输的目标事件设置待传输的目标事件对应的原子类型的参数,并初始化为0。并在任务较多即待传输的目标事件的数量较多时,接收线程对应地还可以建立一个任务队列,将每个任务都放在队列中,以由主线程从任务队列中依次获取每个任务对应的待传输的目标事件,然后按照上述实施例的步骤s101-s103对每个目标事件进行数据并发处理。

本实施例的数据并发处理方法,采用多个数据发送装置并行传输数据,能够有效地提高数据并发处理的效率,缩短数据传输的时长,满足实时性要求比较高的场景的需求;且本实施例通过设置待传输的目标事件对应的原子类型的参数,可以实现并行发送的多线程的互斥,能够有效的保证多个数据并发传输的准确性和传输效率。

图2为本发明的数据并发处理方法实施例二的流程图。如图2所示,本实施例的数据并发处理方法,具体可以包括如下步骤:

s200、从待传输的目标事件的数据队列中获取数据的相关信息;该数据队列为数据管理装置为目标事件建立的,用于存放目标事件中包括的n个数据的相关信息,各数据的相关信息中携带有原子类型的参数的地址信息;该原子类型的参数为数据管理装置为目标事件设置的,并初始化为0;

s201、根据数据的相关信息,获取对应的数据;

s202、向远端服务器发送获取的数据;

s203、根据原子类型的参数的地址信息,对原子类型的参数累加1。

本实施例的数据并发处理方法,在数据发送端的多个数据发送装置中的任一数据发送装置侧描述本发明的技术方案。

本实施例的数据队列用于存放有目标事件中包括的n个数据的相关信息;本实施例中的多个数据发送装置按照多线程的工作模式进行工作。每个数据发送装置在进行数据发送时,先从待传输的目标事件的数据队列中获取一个数据的相关信息,然后再根据获取的数据的相关信息,获取对应的数据;并向远端服务器发送获取的数据。最后,在数据发送成功后,还要根据原子类型的参数的地址信息,对原子类型的参数累加1,这样,当多个数据发送装置对n个数据都发送成过后,该原子类型的参数的值便等于n。此时数据管理装置通过监控该原子类型的参数的数值,便可以确定目标事件中的n个数据是否都发送成功。

例如,本实施例中的数据队列中的n个数据的相关信息并不是数据本身,但是根据每个数据的相关信息可以获取到对应的数据。例如,该数据的相关信息可以为数据的地址信息,或者为存有数据地址的一个地址信息,或者还可以为能够指向数据地址的指针,或者是能够指向存有数据地址的一个地址的指针,还可以为能够查到数据的其他信息,在此不再一一举例赘述。

例如,本实施例的步骤s200一种实现方式中,具体可以为:从数据队列中获取数据的数据内存空间的地址信息,该数据的数据内存空间为数据管理装置为目标事件中每个数据创建的,用于存储数据的标识信息和目标事件的事件内存空间的地址信息,目标事件的事件内存空间为数据管理装置创建的,用于存储目标事件的信息,该目标事件的信息中包括n个数据以及数据之外的其他信息。且,原子类型的参数是数据管理装置设置在目标事件的事件内存空间中的,所以,原子类型的参数的地址信息与事件内存空间的地址信息一致。

对应地,步骤s201的实现方式中,具体可以包括如下步骤:

(1)根据数据的数据内存空间的地址信息,从对应的数据内存空间中获取数据的标识信息和目标事件的事件内存空间的地址信息;

(2)从事件内存空间的地址信息对应的事件内存空间中,获取数据的标识信息对应的数据。

对应地,本实施例的步骤s203之前,还可以包括:根据事件内存空间的地址信息,获取对应的事件内存空间中存储的原子类型的参数,后续可以按照步骤s203对原子类型的参数累加1。

进一步可选地,在上述图2所示实施例中,步骤s201“根据数据的相关信息,获取对应的数据”,步骤s202“向远端服务器发送获取的数据”,是直接向远端服务器发送获取到的数据,实际应用中,本实施例中,还可以在步骤s201之后,步骤s202之前,按照预设的处理规则,对数据进行处理。例如若获取的数据非常大,此时可以对获取的数据进行压缩。或者若云端服务器仅需要获取的数据中的部分特征数据,还可以从获取的数据中提取部分特征数据。实际应用中,还可以根据实际需求,在数据发送装置中配置其他的预设处理规则,并在获取到的数据后,按照预设的处理规则,调用相应的算法,对数据进行处理,并向云端服务器发送处理后的数据。

同理,本实施例的数据可以为图片、语音或者文字数据。

本实施例的数据并发处理方法,与上述图1所示实施例的区别在于:上述图1所示实施例在数据管理装置侧描述本发明的技术方案,而本实施例在多个数据发送装置中的任一数据发送装置侧描述本发明的技术方案。本实施例中的多个数据发送装置以多线程的并行发送数据的工作模式发送数据队列中的n个数据的相关信息对应的数据。本实施例的数据并发处理方法的具体实现方式与上述图1所示实施例相同,详细亦可以参考上述图1所示实施例的记载,在此不再赘述。

本实施例的数据并发处理方法,采用多个数据发送装置并行传输数据,能够有效地提高数据并发处理的效率,缩短数据传输的时长,满足实时性要求比较高的场景的需求;且本实施例通过设置待传输的目标事件对应的原子类型的参数,可以实现并行发送的多线程的互斥,能够有效的保证多个数据并发传输的准确性和传输效率。

另外,现有技术中还提供有一种利用利用锁,实现数据的并发处理和发送。具体地,为整个需要处理和发送的数据申请一个互斥锁和一个状态标记。把需要处理的任务分配到多线程中处理和发送。每个线程发送完成之后,申请互斥锁,申请到之后再去更新标记位。当全部线程都发送完成之后,主线程把最后的数据发送出去。上述技术方案虽然使用了并发功能,但是由于每个数据都需要一个用于控制互斥的锁资源,数据发送完成之后,又需要销毁锁资源。当有大量的数据需要发送时,对系统的资源消耗比较大。

而相对来说,采用本实施例的技术方案,既通过类似于多线程并发的技术,提高了数据的处理和发送效率,又利用了原子类型可以实现并行发送的多线程的互斥,在提高数据处理发送效率的同时,还能够有效地降低对系统资源的消耗。

下面以传输新零售场景下一个监控事件为例,来描述本发明的技术方案。具体地,如图3所示的本发明的数据并发处理方法的一种示例图。

具体地,在本实施例中,新零售场景下监控事件中可以包括大量的图片、涉及到的各种算法的参数、置信度以及大量的图片文件名等。由于本地存储的图片是比较大的,一张图片有300kb左右。而每个监控事件包含上百张图片,如果所有图片都传原图的话,会造成数据的传输量太大。所以,在本实施例中,为了减少数据的传输量,在每张图片被传输之前,都需要经过一轮压缩,把图片压缩到适当的大小。

本实施例的数据并发处理方法的整体上的方案就是通过多线程技术,把一个监控事件的全部图片,分配到不同的线程中进行必要的压缩,然后再把压缩后的图片发送给远端的服务器接收。当全部图片都发送完成之后,再把监控事件的图片数据之外的其他信息发送给远端服务器。远端服务器接收到监控事件时,由于图片都已经被提前发送过来了,这样这个监控事件中的图片文件名就有意义了,整个监控事件也完整了,可以进行后续的操作了。

如图3所示,本实施例中,接收线程用来接收需要传输的监控事件,然后接收线程申请一块新的内存空间,用于存储接收到的监控事件。在申请的这块内存空间中,同时设置一个原子类型(如c++中可以为std::atomic类型)的字段succ_send_pic_count,并且设置初始值为0。然后接收线程把接收到的监控事件对应的内存指针放入一个单独的线程安全的监控事件队列中。可选地,接收线程接收到需要传输的监控事件后,也可以不做任何处理,而直接给主线程,由主线程为每个要传输的监控事件申请一块新的内存空间,并存储接收到的监控事件,以及申请原子类型的字段。

主线程从监控事件队列中,获取一个待发送的监控事件的指针moniter_event_ptr,然后把其中的图片文件名解析出来,然后为每个图片文件名申请一块儿内存,指针名为moniter_event_pic_ptr。这块内存不仅存储图片文件名,而且还存储指向监控事件的指针moniter_event_ptr。然后主线程把每个图片文件对应的指针moniter_event_pic_ptr放到待处理图片队列中。与此同时,主线程获取到了全部的待发送图片的数量,all_pic_count。待处理图片队列中有信息后,图片处理线程便开始从待处理图片队列中获取信息,开始处理。图片处理线程不断的从待发送图片队列中,pop出新的待发送图片的指针moniter_event_pic_ptr。首先利用文件名,获取图片对应的内容,然后通过调用相应的算法,把该图片进行压缩,得到一个较原图小一些的图片。具体的压缩比例,可以根据需求确定。压缩完成之后,该图片处理线程直接与远端服务器进行通信,把图片发送出去。发送完成之后,通过之前已经存储的指针moniter_event_ptr修改其对应的字段:succ_send_pic_count,给其累加1。随着图片的发送成功,succ_send_pic_count越来越大,最终和all_pic_count一样大。

同时,主线程开始不断的比较succ_send_pic_count和all_pic_count。随着图片被不断的发送成功,succ_send_pic_count会逐渐的增大,最后和all_pic_count一样大,这时候主线程把监控事件的数据之外的其他信息发送给远端服务器。至此,监控事件传输完毕。

图4为本发明的数据管理装置实施例的结构图。如图4所示,本实施例的数据管理装置,具体可以包括:

设置模块10用于设置待传输的目标事件对应的原子类型的参数,并初始化为0;

建立模块11用于建立数据队列,数据队列用于存放目标事件中包括的n个数据的相关信息,各数据的相关信息中携带有设置模块10设置的原子类型的参数的地址信息,以由多个数据发送装置根据数据队列中n个数据的相关信息,并行向远端服务器发送对应的n个数据,且每个数据发送装置发送完一个数据后,根据原子类型的参数的地址信息对原子类型的参数累加1;

监控模块12用于监控设置模块10设置的原子类型的参数的数值是否等于n;

确定模块13用于若监控模块12监控到原子类型的参数的数值等于n,确定目标事件中的所有数据发送完成。

本实施例的数据管理装置,通过采用上述模块实现数据并发处理的实现原理以及技术效果与上述相关方法实施例的实现相同,详细可以参考上述相关方法实施例的记载,在此不再赘述。

进一步可选地,如图4所示,本实施例的数据管理装置中,还可以包括发送模块14,用于在确定模块13确定目标事件中的所有数据发送完成后,触发发送模块14向远端服务器发送目标事件中的数据之外的其他信息。

进一步可选地,本实施例的数据管理装置中,设置模块10具体用于:

为目标事件分配事件内存空间,在事件内存空间中存储目标事件的信息,并在事件内存空间中设置原子类型的参数,并初始化为0;目标事件的信息中包括n个数据以及数据之外的其他信息。

进一步可选地,本实施例的数据管理装置中,建立模块11具体用于:

根据目标事件的信息,为目标事件的n个数据中的每个数据分配数据内存空间,在数据内存空间中存储对应的数据的标识信息和事件内存空间的地址信息;

将n个数据的数据内存空间的地址信息存入一队列中,作为数据队列,以由多个数据发送装置依次根据数据队列中各个数据内存空间的地址信息获取对应的数据,并行向远端服务器发送,且每个数据发送装置发送完一个数据后,根据事件内存空间的地址信息,对存储的原子类型的参数累加1。

进一步可选地,本实施例的数据管理装置中,数据为图片、语音或者文字数据。

图5为本发明的数据发送装置实施例的结构图。如图5所示,本实施例的数据发送装置,具体可以包括:

获取模块20用于从待传输的目标事件的数据队列中获取数据的相关信息;数据队列为数据管理装置为目标事件建立的,用于存放目标事件中包括的n个数据的相关信息,各数据的相关信息中携带有原子类型的参数的地址信息;原子类型的参数为数据管理装置为目标事件设置的,并初始化为0;

获取模块20还用于根据数据的相关信息,获取对应的数据;

发送模块21用于向远端服务器发送获取模块20获取的数据;

在发送模块21发出成功后,触发修改模块22启动,修改模块22用于根据获取模块20获取数据的相关信息中携带的原子类型的参数的地址信息,对原子类型的参数累加1。

本实施例的数据发送装置,通过采用上述模块实现数据并发处理的实现原理以及技术效果与上述相关方法实施例的实现相同,详细可以参考上述相关方法实施例的记载,在此不再赘述。

进一步可选地,本实施例的数据发送装置中,获取模块20具体用于:

从数据队列中获取数据的数据内存空间的地址信息,数据的数据内存空间为数据管理装置为目标事件中每个数据创建的,用于存储数据的标识信息和目标事件的事件内存空间的地址信息,目标事件的事件内存空间为数据管理装置创建的,用于存储目标事件的信息,目标事件的信息中包括n个数据以及数据之外的其他信息。

进一步可选地,本实施例的数据发送装置中,获取模块20具体还用于:

根据数据的数据内存空间的地址信息,从对应的数据内存空间中获取数据的标识信息和目标事件的事件内存空间的地址信息;

从事件内存空间的地址信息对应的事件内存空间中,获取数据的标识信息对应的数据。

进一步可选地,如图5所示,本实施例的数据发送装置中,还包括:

数据处理模块23用于按照预设的处理规则,对数据进行处理。

此时,对应地,发送模块21用于向远端服务器发送数据处理模块23处理后的数据。

进一步可选地,本实施例的数据发送装置中,数据为图片、语音或者文字数据。

图6为本发明的数据并发处理系统实施例的结构图。如图6所示,本实施例的数据并发处理系统,包括数据管理装置100和多个数据发送装置200,多个数据发送装置200采用多线程并发的工作模式;各数据发送装置200与数据管理装置100通信连接;数据管理装置100采用如上图4所示的数据管理装置;各数据发送装置200采用如上图5所示的数据发送装置。且具体可以采用如上述图1-图3任一所述的数据并发处理方法,实现数据的并发处理。

图7为本发明的计算机设备实施例的结构图。如图7所示,本实施例的计算机设备,包括:一个或多个处理器30,以及存储器40,存储器40用于存储一个或多个程序,当存储器40中存储的一个或多个程序被一个或多个处理器30执行,使得一个或多个处理器30实现如上图1-图3所示实施例的数据并发处理方法。图7所示实施例中以包括多个处理器30为例。

例如,图8为本发明提供的一种计算机设备的示例图。图8示出了适于用来实现本发明实施方式的示例性计算机设备12a的框图。图8显示的计算机设备12a仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。

如图8所示,计算机设备12a以通用计算设备的形式表现。计算机设备12a的组件可以包括但不限于:一个或者多个处理器16a,系统存储器28a,连接不同系统组件(包括系统存储器28a和处理器16a)的总线18a。

总线18a表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(isa)总线,微通道体系结构(mac)总线,增强型isa总线、视频电子标准协会(vesa)局域总线以及外围组件互连(pci)总线。

计算机设备12a典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算机设备12a访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。

系统存储器28a可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(ram)30a和/或高速缓存存储器32a。计算机设备12a可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34a可以用于读写不可移动的、非易失性磁介质(图8未显示,通常称为“硬盘驱动器”)。尽管图8中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如cd-rom,dvd-rom或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18a相连。系统存储器28a可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明上述图1-图6各实施例的功能。

具有一组(至少一个)程序模块42a的程序/实用工具40a,可以存储在例如系统存储器28a中,这样的程序模块42a包括——但不限于——操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42a通常执行本发明所描述的上述图1-图6各实施例中的功能和/或方法。

计算机设备12a也可以与一个或多个外部设备14a(例如键盘、指向设备、显示器24a等)通信,还可与一个或者多个使得用户能与该计算机设备12a交互的设备通信,和/或与使得该计算机设备12a能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(i/o)接口22a进行。并且,计算机设备12a还可以通过网络适配器20a与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。如图所示,网络适配器20a通过总线18a与计算机设备12a的其它模块通信。应当明白,尽管图中未示出,可以结合计算机设备12a使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理器、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储系统等。

处理器16a通过运行存储在系统存储器28a中的程序,从而执行各种功能应用以及数据处理,例如实现上述实施例所示的数据并发处理方法。

本发明还提供一种计算机可读介质,其上存储有计算机程序,该程序被处理器执行时实现如上述实施例所示的数据并发处理方法。

本实施例的计算机可读介质可以包括上述图8所示实施例中的系统存储器28a中的ram30a、和/或高速缓存存储器32a、和/或存储系统34a。

随着科技的发展,计算机程序的传播途径不再受限于有形介质,还可以直接从网络下载,或者采用其他方式获取。因此,本实施例中的计算机可读介质不仅可以包括有形的介质,还可以包括无形的介质。

本实施例的计算机可读介质可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。

计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。

计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、电线、光缆、rf等等,或者上述的任意合适的组合。

可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如java、smalltalk、c++,还包括常规的过程式程序设计语言—诸如”c”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。

在本发明所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。

上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。

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