[发明专利]进程间的通信方法和通信系统有效
申请号: | 201110403299.1 | 申请日: | 2011-12-07 |
公开(公告)号: | CN103150220A | 公开(公告)日: | 2013-06-12 |
发明(设计)人: | 游晶 | 申请(专利权)人: | 腾讯科技(深圳)有限公司 |
主分类号: | G06F9/54 | 分类号: | G06F9/54;G06F12/02 |
代理公司: | 北京德琦知识产权代理有限公司 11018 | 代理人: | 张晓峰;宋志强 |
地址: | 518044 广东省深圳*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种进程间的通信方法和系统,在进程间使用共享内存队列收发数据,并在所述共享内存中标记预读头地址(PrepareHead)、已读头地址(ActualHead)、预写尾地址(PrepareTail)和已写尾地址(ActualTail);同时在发送进程和接收进程中分别设置句柄池,用于暂存每次的读写地址,使得发送进程和接收进程能够直接读写共享内存,协调数据包的接收和发送速度,从而在整体上达到了把传统的缓存和传统共享内存整合在一起的效果。利用本发明,可降低计算资源开销,如中央处理器(CPU)以及内存开销,并可以提升进程间通信的吞吐量。 | ||
搜索关键词: | 进程 通信 方法 系统 | ||
【主权项】:
一种进程间的通信方法,该方法在进程间使用共享内存队列收发数据,其特征在于,包括:在所述共享内存中标记读写地址,包括预读头地址PrepareHead、已读头地址ActualHead、预写尾地址PrepareTail和已写尾地址ActualTail;发送进程在发送数据时,根据当前的读写地址和欲发数据包长度判断所述共享内存是否有可写入该数据包的空间,当判定有可写入该数据包的空间时在共享内存中以所述PrepareTail为开头写入数据包,并根据所发送数据包的长度更新所述PrepareTail,当写入完毕后将该数据包的写入地址放入发送进程的句柄池;发送线程依次读取该句柄池中的写入地址,每读一个写入地址则根据该写入地址对应的数据包长度更新所述ActualTail,并通知接收进程接收数据;接收进程收到接收数据的通知后,根据所述PrepareHead和ActualTail判断所述共享内存是否有数据包可读,当判定有数据包可读时将所述PrepareHead放入接收进程的句柄池中,并根据该PrepareHead开始的数据包长度更新该PrepareHead;接收进程依次读取该句柄池中的PrepareHead,并从共享内存的该PrepareHead处开始读取数据包,每读取完毕一个数据包则根据该已读数据包长度更新所述ActualHead。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(深圳)有限公司,未经腾讯科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201110403299.1/,转载请声明来源钻瓜专利网。
- 上一篇:一种发动机加机油口盖安装工装
- 下一篇:一种活塞环梯面磨床工件盘快速安装夹具