[发明专利]进程间通信方法及装置有效
申请号: | 201410394825.6 | 申请日: | 2014-08-12 |
公开(公告)号: | CN105335238B | 公开(公告)日: | 2020-04-21 |
发明(设计)人: | 黄伟聪 | 申请(专利权)人: | 腾讯科技(深圳)有限公司 |
主分类号: | G06F9/54 | 分类号: | G06F9/54 |
代理公司: | 北京三高永信知识产权代理有限责任公司 11138 | 代理人: | 王丽 |
地址: | 518000 广东省深圳*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 进程 通信 方法 装置 | ||
本发明公开了一种进程间通信方法及装置,属于操作系统领域。所述方法包括:接收方进程创建回调接口;接收方进程向所述发送方进程发送数据获取请求;接收方进程向所述发送方进程提供所述回调接口;接收方进程接收所述发送方进程对所述回调接口提供的传输方法的n次回调。本发明达到了由接收方进程向发送方进程提供支持多次回调的回调接口,发送方进程通过该回调接口实现了一次进程间通信过程中将大数据分批进行传输的效果,即不需要多次重建进程间通信,也不会因单次传输的数据量太大而导致传输异常。
技术领域
本发明涉及操作系统领域,特别涉及一种进程间通信方法及装置。
背景技术
在操作系统中,每一个应用程序都运行在独立的进程中,不同的进程之间相互独立,从而保证了当其中一个应用程序出现异常时不会影响另一个应用程序的正常运转。但是当两个进程之间需要合作时,就需要使用进程间通信。
安卓(英文:Android)系统中基于Binder机制来实现两个进程之间的通信。以两个进程之间传递数据为例,参考图1,接收方进程12和发送方进程14均运行在用户空间,而Binder驱动16运行在内核空间。接收方进程12和发送方进程14两者要实现通信需要遵循相同的协议,该协议在代码上的体现即为两者之间需要实现在Binder驱动16中的接口。在需要进程间通信时,接收方进程12创建一次性的IDemo接口,将该IDemo接口在Binder驱动16中封装为接口对象18,发送方进程14可以调用该接口对象18向接收方进程12传输数据。
在实现本发明的过程中,发明人发现现有技术至少存在以下问题:由于一次性的IDemo接口单次能够传输的数据不能超过预定阈值,所以两个进程之间在一次进程间通信过程中只能传输很小的数据。
发明内容
为了解决现有技术的问题,本发明实施例提供了一种进程间通信方法及装置。所述技术方案如下:
根据本发明实施例的第一方面,提供一种进程间通信方法,用于接收方进程,所述方法包括:
创建回调接口,所述回调接口用于实现数据传输且支持发送方进程的多次回调;
向所述发送方进程发送数据获取请求;
向所述发送方进程提供所述回调接口;
接收所述发送方进程对所述回调接口提供的传输方法的n次回调,每次回调用于传输n个数据块中的一块,所述n个数据块是所述发送方进程根据所述数据获取请求将目标数据切割得到的,n≥2。
根据本发明实施例的第二方面,提供一种进程间通信方法,用于发送方进程,所述方法包括:
接收接收方进程发送的数据获取请求;
获取所述接收方进程提供的回调接口,所述回调接口是所述接收方进程创建的用于实现数据传输且支持多次回调的接口;
根据所述数据获取请求将目标数据切割为n个数据块,n≥2;
对所述回调接口提供的传输方法进行n次回调,每次回调用于传输所述n个数据块中的一个。
根据本发明实施例的第三方面,提供一种进程间通信装置,用于接受方进程,所述装置包括:
回调接口创建模块,用于创建回调接口,所述回调接口用于实现数据传输且支持发送方进程的多次回调;
请求发送模块,用于向所述发送方进程发送数据获取请求;
回调接口发送模块,用于向所述发送方进程提供所述回调接口;
数据接收模块,用于接收所述发送方进程对所述回调接口提供的传输方法的n次回调,每次回调用于传输n个数据块中的一块,所述n个数据块是所述发送方进程根据所述数据获取请求将目标数据切割得到的,n≥2。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(深圳)有限公司,未经腾讯科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410394825.6/2.html,转载请声明来源钻瓜专利网。