多进程共享数据处理方法和装置的制造方法

文档序号:8395713阅读:349来源:国知局
多进程共享数据处理方法和装置的制造方法
【技术领域】
[0001]本发明涉及数据处理领域,具体而言,涉及一种多进程共享数据处理方法和装置。
【背景技术】
[0002]现有技术方案解决多个进程间数据共享,一般都采用共享内存的方式,也就是多个进程读写同一块物理内存,通过其中某个进程来维护共享内存的共享数据。
[0003]现有技术有如下缺点:
[0004]为了保证多个进程读取数据的一致性,进程在访问共享内存前需要加线程锁。线程锁会降低进程读写内存的效率,特别是在多进程频繁访问共享内存的情况下,线程锁更大程度的减低进程读写内存的效率。
[0005]共享内存只是共享数据存储区域,不能及时更新共享数据。例如A进程更新了共享内存中的数据,B进程并不知道,需要由A进程来主动通知B进程,在进程较多的情况下,上述更新共享数据的方式不仅繁琐,还大大降低了进程读写内存的效率。
[0006]针对现有技术中进程读写内存效率比较低的问题,目前尚未提出有效的解决方案。

【发明内容】

[0007]本发明实施例的主要目的在于提供一种多进程共享数据处理方法和装置,以解决现有技术中现有技术中进程读写内存效率比较低的问题。
[0008]为了实现上述目的,根据本发明实施例的一个方面,提供了一种多进程共享数据处理方法。该方法包括:通过多个进程读取共享数据,多个进程包括第一进程和第二进程,多进程共享数据处理方法包括:启动第一进程;第一进程读取共享数据;第一进程在读取共享数据之后,将共享数据保存为镜像数据;启动第二进程;以及第二进程通过读取镜像数据读取共享数据。
[0009]为了实现上述目的,根据本发明实施例的另一方面,提供了一种多进程共享数据处理装置。该装置包括:多进程共享数据处理装置通过多个进程读取共享数据,多个进程包括第一进程和第二进程,多进程共享数据处理装置包括:第一启动单元,用于启动第一进程;第一读取单元,用于通过第一进程读取共享数据;保存单元,用于在第一进程在读取共享数据之后,将共享数据保存为镜像数据;第二启动单元,用于启动第二进程;以及第二读取单元,用于第二进程通过读取镜像数据读取共享数据。
[0010]通过本发明实施例,解决了现有技术中进程读写内存效率比较低的问题,进而达到了提高进程读写内存效率的效果。
【附图说明】
[0011]构成本申请的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
[0012]图1是根据本发明第一实施例的多进程共享数据处理方法的流程图;
[0013]图2是根据本发明第二实施例的多进程共享数据处理方法的流程图;
[0014]图3是根据本发明实施例的多进程共享数据处理方法的示意图;
[0015]图4是根据本发明第三实施例的多进程共享数据处理方法的流程图;
[0016]图5是根据本发明实施例的多进程共享数据处理方法的数据处理流程图;
[0017]图6是根据本发明第一实施例的多进程共享数据处理装置的示意图;
[0018]图7是根据本发明第二实施例的多进程共享数据处理装置的示意图;以及
[0019]图8是根据本发明第三实施例的多进程共享数据处理装置的示意图。
【具体实施方式】
[0020]需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。
[0021 ] 为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
[0022]需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
[0023]本发明实施例提供了一种多进程共享数据处理方法。
[0024]为了便于对本发明实施方案的理解,首先介绍几个术语,具体如下:
[0025]进程:进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动。它是操作系统动态执行的基本单元,在传统的操作系统中,进程既是基本的分配单元,也是基本的执行单元。每一个进程都有它自己的地址空间,包括文本区域(text reg1n)、数据区域(data reg1n)和堆栈(stack reg1n)。
[0026]进程间通信(Inter-Process Communicat1n,简称IPC),提供了各种进程间通信的方法。操作系统提供的IPC方式包括:命名管道、消息、信号量、共享内存、网络Socket等。
[0027]共享内存:被多个进程共享的一部分物理内存。共享内存是进程间共享数据的一种最快的方法,一个进程向共享内存区域写入了数据,共享这个内存区域的所有进程就可以立刻看到其中的内容。
[0028]线程锁:在多线程编程里面,一些敏感数据不允许被多个线程同时访问,此时就使用同步访问技术,保证数据在任何时刻,最多有一个线程访问,以保证数据的完整性。线程锁就是同步访问技术,具体的实现包含:互斥量、临界区、信号量等。
[0029]图1是根据本发明第一实施例的多进程共享数据处理方法的流程图。如图所示,该数据处理方法包括如下步骤:
[0030]本发明实施例提供的多进程共享数据处理方法中,可以通过多个进程读取共享数据,其中,多个进程包括第一进程和第二进程。第一进程和第二进程是多个进程中的任意一个进程。
[0031]步骤S101,启动第一进程。
[0032]步骤S102,第一进程读取共享数据。
[0033]步骤S103,第一进程在读取共享数据之后,将共享数据保存为镜像数据。
[0034]步骤S104,启动第二进程。
[0035]步骤S105,第二进程通过读取镜像数据读取共享数据。
[0036]在启动第一进程之后,第一进程读取共享数据,在读取共享数据之后,第一进程将共享数据保存为镜像数据。如果第二进程需要读取共享数据,则启动第二进程之后,第二进程读取第一进程保存的镜像数据,第二进程通过读取镜像数据读取共享数据。
[0037]镜像数据与共享数据相同,第一进程在读取共享数据之后,将共享数据保存在第一进程的数据区域,该数据区域可以是一个虚拟内存或者其他可以用来保存数据的区域。
[0038]第二进程读取第一进程保存的镜像数据,而镜像数据通过保存共享数据得到,从而使得第二进程读取到的镜像数据与第一进程读取到的共享数据相同,即第二进程读取得到共享数据。
[0039]通过第一进程保存镜像数据,第二进程通过读取第一进程保存的镜像数据获得共享数据的方法,避免了第一进程和第二进程读写同一块物理内存,并且,在第一进程和第二进程读写共享数据的过程中,不需要在访问共享数据之前加线程锁,避免了线程锁导致的进程读取共享数据的效率较低的问题,从而提高了多个进程读取共享数据的效率。
[0040]图2是根据本发明第二实施例的多进程共享数据处理方法的流程图。该图示出了在第一进程读取共享数据之前,多进程共享数据处理方法包括如下步骤:
[0041]步骤S201,启动共享进程。共享进程中存储了共享数据。
[0042]步骤S202,共享进程接收第一进程的启动消息。第一进程的启动消息包含但不限于向共享进程请求共享数据的消息。
[0043]步骤S203,共享进程在接收到第一进程的启动消息之后,将共享数据发送至第一进程
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1