[发明专利]一种进程间通信的方法及相关装置有效
申请号: | 201811209060.9 | 申请日: | 2018-10-17 |
公开(公告)号: | CN109358974B | 公开(公告)日: | 2021-05-28 |
发明(设计)人: | 付得龙 | 申请(专利权)人: | 武汉斗鱼网络科技有限公司 |
主分类号: | G06F9/54 | 分类号: | G06F9/54;G06F16/176 |
代理公司: | 北京众达德权知识产权代理有限公司 11570 | 代理人: | 徐松 |
地址: | 430000 湖北省武汉市东湖开*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 进程 通信 方法 相关 装置 | ||
本发明实施例公开了一种进程间通信的方法以及相关装置,用于解决现有技术中父子进程通信内容不可靠的问题。本发明实施例方法包括:在施压机中创建共享文件,所述共享文件用于多个进程间信息的共享,所述多个进程包括一个守护进程和多个施压子进程;获得所述共享文件对应的文件管道,并根据所述文件管道获得共享内存,所述共享内存为与所述共享文件对应的可读内存;当所述施压子进程产生消息时,对所述消息进行序列化处理,以在所述共享文件中组成完整的消息;将所述消息写入所述共享文件中,并更新所述共享内存的写索引字段,以通过所述共享内存将所述消息从施压子进程发送给所述守护进程。
技术领域
本发明涉及性能测试领域,尤其涉及一种进程间通信的方法及相关装置。
背景技术
性能测试平台施压机压测是多进程多线程模型,一个施压机上存在多个施压进程,施压进程拉起后需要绑定传输控制协议(transmission control protocol,TCP)的服务server端的端口号,通过施压进程和施压机守护进程单项的进程间通信传给施压机守护进程,进而传给控制console端。
现有技术中,基于开源压测平台NGrinder,采用java输入输出流作为守护进程和施压进程,即通过父进程输入流和施压子进程输出流建立通信通道。然而,现有技术中,基于NGrinder采用java输入输出流作为守护进程和施压进程间通信方案虽然简单,但是开发人员容易误用输入输出流,会导致父子进程通信内容并不可靠。
发明内容
本发明实施例提供了一种进程间通信的方法以及相关装置,用于解决现有技术中父子进程通信内容不可靠的问题。
本发明实施例的第一方面提供了一种进程间通信的方法,包括:在施压机中创建共享文件,所述共享文件用于多个进程间信息的共享,所述多个进程包括一个守护进程和多个施压子进程;获得所述共享文件对应的文件管道,并根据所述文件管道获得共享内存,所述共享内存为与所述共享文件对应的可读内存;当所述施压子进程产生消息时,对所述消息进行序列化处理,以在所述共享文件中组成完整的消息;将所述消息写入所述共享文件中,并更新所述共享内存的写索引字段,以通过所述共享内存将所述消息从施压子进程发送给所述守护进程。
在一种可能的实施例中,所述获得所述共享文件对应的文件管道,并根据所述文件管道获得共享内存包括:
通过函数randomAccessFile.getChannel()获得所述共享文件对应的文件管道,所述randomAccessFile为用于支持读写随机存取文件的类;将所述文件管道作为函数MappedByteBufferWrap()的输入,以获得所述共享内存。
在一种可能的实施例中,所述对所述消息进行序列化处理,以在所述共享文件中组成完整的消息包括:通过函数jdkSerializable()实现所述消息的序列化;通过函数putInt()获得所述消息的长度,并根据put()函数在所述共享文件中组成完整的消息。
在一种可能的实施例中,所述方法还包括:通过函数trylock()获取所述共享文件的文件锁,所述文件锁用于避免所述一个守护进程和多个施压子进程之间的资源冲突。
在一种可能的实施例中,所述将所述消息写入所述共享文件中,并更新所述共享内存的写索引字段包括:通过函数mMappedByteBuffer.position()和mMappedByteBuffer.put()将所述消息写入所述共享文件中;将所述共享内存的写索引字段和所述消息的长度的和作为函数setWriteIndex()的输入,以更新所述共享内存的写索引字段。
在一种可能的实施例中,所述方法还包括:当所述守护进程读取所述消息时,对所述共享文件进行压缩并过滤掉所述守护进程读取的字节。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于武汉斗鱼网络科技有限公司,未经武汉斗鱼网络科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811209060.9/2.html,转载请声明来源钻瓜专利网。