[发明专利]无锁消息队列通信方法及系统有效
申请号: | 201610681120.1 | 申请日: | 2016-08-17 |
公开(公告)号: | CN106293973B | 公开(公告)日: | 2019-12-13 |
发明(设计)人: | 何万刚 | 申请(专利权)人: | 深圳市金证科技股份有限公司 |
主分类号: | G06F9/54 | 分类号: | G06F9/54 |
代理公司: | 44237 深圳中一专利商标事务所 | 代理人: | 张全文 |
地址: | 518057 广东省深圳市南山区*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种无锁消息队列通信方法及系统。该无锁消息队列通信方法包括:在共享内存中创建无锁消息队列,无锁消息队列包括依据先进先出原则排列的至少一个消息体;接收至少一个写进程发送的投递消息,并依据接收到投递消息的先后顺序,将每一写进程的投递消息对应的消息体依序写入无锁消息队列的队列尾部;接收至少一个读进程发送的读取消息,并依据接收到读取消息的先后顺序,从无锁消息队列的队列头部依序将消息体逐一发送给每一读进程。该无锁消息队列通信方法及系统中所有消息体依据先进先出原则存储在共享内存中,通过写进程和读进程可实现同一设备中多个进程间进行大量数据交互的并发安全通信。 | ||
搜索关键词: | 消息 队列 通信 方法 系统 | ||
【主权项】:
1.一种无锁消息队列通信方法,其特征在于,包括:/n在共享内存中创建无锁消息队列,所述无锁消息队列包括依据先进先出原则排列的至少一个消息体;/n接收至少一个写进程发送的投递消息,并依据接收到投递消息的先后顺序,将每一所述写进程的投递消息对应的消息体依序写入所述无锁消息队列的队列尾部,包括:至少一个写进程先后获取队列写权限和抢占消息索引写权限,并向所述无锁消息队列发送投递消息;根据每一写进程的抢占消息索引写权限确定接收到的投递消息的先后顺序;将每一所述写进程的投递消息对应的消息体依序写入所述无锁消息队列的队列尾部的所述消息内容内存块中;更新所述消息索引内存块中的消息索引,并释放所述抢占消息索引写权限;更新所述队列头部内存块中的头部信息,并释放所述队列写权限,写作操作结束时,所述写进程不再向所述无锁消息队列发送所述投递消息和所述消息体;/n接收至少一个读进程发送的读取消息,并依据接收到读取消息的先后顺序,从所述无锁消息队列的队列头部依序将消息体逐一发送给每一所述读进程,包括:至少一个读进程获取队列读权限,并向所述无锁消息队列发送读取消息;基于所述队列读权限,遍历所述消息索引内存块中的所有消息索引,以获取未读取的消息内容;每一读进程获取抢占消息索引读权限,并根据抢占消息索引读权限确定接收到的读取消息的先后顺序;从所述无锁消息队列的队列头部依序将所述未读取的消息内容逐一发送给到抢占消息索引读权限所对应的读进程中;更新所述消息索引内存块中的消息索引,并释放所述抢占消息索引读权限;更新所述队列头部内存块中的头部信息,并释放所述队列读权限。/n
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳市金证科技股份有限公司,未经深圳市金证科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201610681120.1/,转载请声明来源钻瓜专利网。