System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 进程间通信方法、装置和计算机设备制造方法及图纸_技高网

进程间通信方法、装置和计算机设备制造方法及图纸

技术编号:41323825 阅读:9 留言:0更新日期:2024-05-13 15:02
本公开提供了一种进程间通信方法、装置和计算机设备。所述方法包括:主控进程与多个子进程建立连接,所述多个子进程包括第一子进程和第二子进程;所述主控进程接收所述第一子进程发送的第一消息;在所述第一消息的目的进程为所述主控进程的情况下,所述主控进程在感兴趣链表中查找所述第一消息的消息类型;在所述感兴趣链表中存在所述第一消息的消息类型的情况下,所述主控进程确定所述感兴趣链表中与所述第一消息的消息类型关联的第二子进程;所述主控进程将所述第一消息发送给所述第二子进程。

【技术实现步骤摘要】

本公开涉及通信,特别涉及一种进程间通信方法、装置和计算机设备


技术介绍

1、在linux系统程序开发中,经常需要高并发,高效的去处理事务,此时就需要应用多线程或者多进程编程。相较于多线程,多进程的优点在于稳定性高,每个进程相互独立。在处理弱相关事务的时候普遍使用多进程的方式。

2、多进程的缺点在于多进程之间的通信不像多线程那么简单灵活,因为线程之间共享数据空间,一个线程的数据可以直接为其他线程所使用,而多进程则相互独立,因此多进程之间的通信管理一直是开发人员关注的重点。


技术实现思路

1、本公开实施例提供了一种进程间通信方法、装置和计算机设备。所述技术方案如下:

2、第一方面,本公开实施例提供了一种进程间通信方法,所述方法包括:

3、主控进程与多个子进程建立连接,所述多个子进程包括第一子进程和第二子进程;

4、所述主控进程接收所述第一子进程发送的第一消息;

5、在所述第一消息的目的进程为所述主控进程的情况下,所述主控进程在感兴趣链表中查找所述第一消息的消息类型;

6、在所述感兴趣链表中存在所述第一消息的消息类型的情况下,所述主控进程确定所述感兴趣链表中与所述第一消息的消息类型关联的第二子进程;

7、所述主控进程将所述第一消息发送给所述第二子进程。

8、可选地,所述主控进程与多个子进程建立连接,包括:

9、所述主控进程创建服务监听程序;

10、所述主控进程启动多个客户端程序,所述多个客户端程序为所述多个子进程;

11、在所述服务监听程序监听到子进程发起连接时,所述主控进程将所述子进程的进程参数加入进程链表。

12、可选地,所述进程链表包括各个子进程的进程链表头以及各个子进程的进程参数;

13、所述进程链表头包括进程id、进程名称、进程启动目录、进程启动参数和进程启动标识;

14、所述进程参数包括进程信息、进程状态、与主控进程建立连接的文件描述符、感兴趣事件个数和进程pid。

15、可选地,所述方法还包括:

16、在所述第一消息的目的进程不是所述主控进程的情况下,所述主控进程向所述第一消息的目的进程发送所述第一消息。

17、可选地,所述主控进程向所述第一消息的目的进程发送所述第一消息,包括:

18、所述主控进程查找进程链表,确定与所述第一消息的目的进程对应的文件描述符;

19、所述主控进程基于所述文件描述符发送所述第一消息。

20、可选地,所述方法还包括:

21、在所述感兴趣链表中不存在所述第一消息的消息类型的情况下,所述主控进程根据所述第一消息的消息类型进行事件处理。

22、可选地,所述方法还包括:

23、在所述第一消息不是事件消息的情况下,所述主控进程确定所述第一消息为感兴趣链表注册信息;

24、所述主控进程基于所述第一消息确定感兴趣消息的消息类型以及关联的子进程;

25、所述主控进程将所述消息类型以及关联的子进程注册到所述感兴趣链表。

26、第二方面,本公开实施例提供了一种进程间通信装置,所述装置包括:

27、连接模块,用于与多个子进程建立连接,所述多个子进程包括第一子进程和第二子进程;

28、接收模块,用于接收所述第一子进程发送的第一消息;

29、查找模块,用于在所述第一消息的目的进程为主控进程的情况下,在感兴趣链表中查找所述第一消息的消息类型;

30、确定模块,用于在所述感兴趣链表中存在所述第一消息的消息类型的情况下,确定所述感兴趣链表中与所述第一消息的消息类型关联的第二子进程;

31、发送模块,用于将所述第一消息发送给所述第二子进程。

32、第三方面,本公开实施例提供了一种计算机设备,所述计算机设备包括:处理器;被配置为存储处理器可执行指令的存储器;其中,所述处理器被配置为执行第一方面任一项所述的进程间通信方法。

33、第四方面,本公开实施例提供了一种计算机可读存储介质,当所述计算机可读存储介质中的指令由计算机设备的处理器执行时,使得所述计算机设备能够执行第一方面任一项所述的进程间通信方法。

34、本公开实施例提供的技术方案带来的有益效果是:

35、在本公开实施例中,通过设置主控进程作为子进程间消息的消息转发节点,主控进程根据感兴趣链表进行消息转发,也即根据消息类型将消息发送给关联的子进程。通过上述方式实现了进程间通信,该方式中主控进程对消息的处理效率高,不会造成进程间通信的消息拥塞,保证了进程间通信效率。

本文档来自技高网...

【技术保护点】

1.一种进程间通信方法,其特征在于,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述主控进程与多个子进程建立连接,包括:

3.根据权利要求2所述的方法,其特征在于,所述进程链表包括各个子进程的进程链表头以及各个子进程的进程参数;

4.根据权利要求1至3任一项所述的方法,其特征在于,所述方法还包括:

5.根据权利要求4所述的方法,其特征在于,所述主控进程向所述第一消息的目的进程发送所述第一消息,包括:

6.根据权利要求1至3任一项所述的方法,其特征在于,所述方法还包括:

7.根据权利要求6所述的方法,其特征在于,所述方法还包括:

8.一种进程间通信装置,其特征在于,所述装置包括:

9.一种计算机设备,其特征在于,所述计算机设备包括:处理器;被配置为存储处理器可执行指令的存储器;其中,所述处理器被配置为执行权利要求1至7任一项所述的方法。

10.一种计算机可读存储介质,其特征在于,当所述计算机可读存储介质中的指令由计算机设备的处理器执行时,使得所述计算机设备能够执行权利要求1至7任一项所述的方法。

...

【技术特征摘要】

1.一种进程间通信方法,其特征在于,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述主控进程与多个子进程建立连接,包括:

3.根据权利要求2所述的方法,其特征在于,所述进程链表包括各个子进程的进程链表头以及各个子进程的进程参数;

4.根据权利要求1至3任一项所述的方法,其特征在于,所述方法还包括:

5.根据权利要求4所述的方法,其特征在于,所述主控进程向所述第一消息的目的进程发送所述第一消息,包括:

6.根据权利要求1至3任一项所述的方...

【专利技术属性】
技术研发人员:陈雪莲黄发钧温玉屏纪巍邓超吴晶晶魏华杨挺朱明华黎明魏榛戴宗昊宋威张晓飞关星李所林叶浪廖国锋董贤伟魏继军宋良平万楚阳蔡超吴志兵张龙
申请(专利权)人:武汉船舶通信研究所中国船舶集团有限公司第七二二研究所
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1