[发明专利]一种进程通信方法和装置有效
申请号: | 201210089581.1 | 申请日: | 2012-03-29 |
公开(公告)号: | CN102662775A | 公开(公告)日: | 2012-09-12 |
发明(设计)人: | 杭程;段培堃;谢志宏;任寰 | 申请(专利权)人: | 奇智软件(北京)有限公司 |
主分类号: | G06F9/54 | 分类号: | G06F9/54 |
代理公司: | 北京润泽恒知识产权代理有限公司 11319 | 代理人: | 苏培华 |
地址: | 100016 北京市朝阳*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 进程 通信 方法 装置 | ||
技术领域
本申请涉及通信技术领域,特别是涉及一种进程通信方法和装置。
背景技术
目前随着时代的发展,单进程程序在很多场合已不能满足人们的需求。如何编写多进程程序已成为现代程序设计技术的重点。在多进程程序中,数据的交互和共享是不可避免的。例如,某些浏览器支持多进程模式,页面A、页面B不在同一个进程运行,而需要经常在它们之间进行数据共享。
Microsoft Win32API提供了多种进程通信的方式,如共享内存方式、剪贴板方式等。参照图1,示出了现有技术一种共享内存方式的进程通信方法的流程示意图,其中,进程A和进程B使用同一共享内存区,进程A发送数据1到共享内存区中去,并通知进程B去接收,此时进程B可能正忙于其他事务,而没有及时对共享内存区中的数据进行操作;此时若进程A发送数据2到共享内存中,进程B现在开始处理消息,并对共享内存区中的数据进行操作就会出现读写错乱的问题,影响进程的执行准确率。
为了避免读写错乱的问题,现有一种共享内存方式的进程通信方法采用一定的补救机制,也即,进程A发送数据到共享内存区中,进程B收到消息并操作,在执行完毕后通知进程A,此时进程A才能再次进行对共享内存区的读写。但如果采用上述补救机制,进程A就不能在需要写数据的时候随时写入,而是需要等待进程B执行完毕才可以进行下一次的操作,这就严重影响了进程A的执行效率和进程的通信效率,例如加载浏览器页面的效率等都会受到影响。
总之,需要本领域技术人员迫切解决的一个技术问题就是:如何能够提高进程的执行准确率、执行效率和进程的通信效率。
发明内容
本申请所要解决的技术问题是提供一种进程通信方法和装置,能够提高进程的执行准确率、执行效率和进程的通信效率。
为了解决上述问题,本申请公开了一种进程通信方法,包括:
源进程将发送给目标进程的数据序列化至其虚拟地址空间的内存空间段;
源进程向目标进程发送数据接收消息,该数据接收消息中携带有该内存空间段的地址信息以及源进程的进程标识。
优选的,所述源进程将发送给目标进程的数据序列化至其虚拟地址空间的内存空间段的步骤,包括:
对发送给目标进程的数据进行序列化操作,并将序列化操作完毕后的数据存储至相应的序列化内存;所述序列化内存的序列化对象中记录有序列化内存的首地址和当前地址;
分配长度与所述序列化内存的长度相等的相应的内存空间段;
将所述序列化内存中存储的数据拷贝至该内存空间段。
优选的,所述对发送给目标进程的数据进行序列化操作的步骤,包括:
采用重载运算符对发送给目标进程的数据进行序列化操作,其中不同数据类型的数据对应不同的重载运算符。
优选的,所述方法还包括:
源进程接收来自目标进程的数据处理完毕消息,该数据处理完毕消息中携带有该内存空间段的地址信息以及源进程的进程标识;
源进程依据该数据处理完毕消息中携带的该内存空间段的地址信息以及源进程的进程标识,释放相应的内存空间段。
优选的,所述源进程依据该数据处理完毕消息中携带的该内存空间段的地址信息以及源进程的进程标识,释放相应的内存空间段的步骤,包括:
源进程依据该数据处理完毕消息中携带的源进程的进程标识,获得源进程的进程对象句柄;
源进程依据源进程的进程对象句柄及该内存空间段的地址信息,释放相应的内存空间段。
优选的,所述地址信息包括:内存空间段的首地址以及长度。
另一方面,本申请还公开了一种进程通信方法,包括:
目标进程接收来自源进程的数据接收消息,该数据接收消息中携带有源进程的相应内存空间段的地址信息以及源进程的进程标识;
目标进程依据该数据接收消息中携带的相应的内存空间段的地址信息以及源进程的进程标识,从相应源进程的相应内存空间段读取数据。
优选的,所述目标进程依据该数据接收消息中携带的相应的内存空间段的地址信息以及源进程的进程标识,从相应源进程的相应内存空间段读取数据的步骤,包括:
目标进程依据该数据接收消息中携带的源进程的进程标识,获得源进程的进程对象句柄;
目标进程依据源进程的进程对象句柄及该数据接收消息中携带的该内存空间段的地址信息,从相应源进程的相应内存空间段读取数据。
优选的,所述方法还包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于奇智软件(北京)有限公司,未经奇智软件(北京)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210089581.1/2.html,转载请声明来源钻瓜专利网。