ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

Linux进程间通信

2022-04-20 20:33:57  阅读:163  来源: 互联网

标签:socket Linux 通信 间通信 互斥 拥塞 消息 消息中间件 进程


信号量

通过两组互斥锁完成进程同步,几乎不可能传递消息。其实就是个互斥结构,很常见的东西。只是当年提出的早。

比如音频播放完了,机器人才能接受新的音频,用一个互斥锁锁住。
比如虚拟人动画在未播放完当前动画时候,不能接受新的动画指令。用一个互斥锁锁住。

管道

父子进程,无名管道通信。最好父子限制读写。

FIFO,有名管道通信。速度很慢。比access数据库慢,比socket慢。就像是socket方式通信却每次bit数组仅传递1位消息。

共享内存。

单机速度快。

原理是用一个指针指向内存。然后读写这个指针,仅仅能读一次。
共享内容状态,读写共享内容同时存在状态为2,仅一个存在为1,都不存在则无

ipcs

image

消息队列

缺乏了解。速度不错。总感觉传输大小应该有限制。

Socket

Socket单机速度和局域网速度实际上很快。在RIMA机器人上面实际测试过。当然大规模的传送图形,视频流应该有问题。

ROS机器人在2007年没有使用socket的原因是消息拥塞,以及不适应多智能体。但是ROS1的问题依然是消息拥塞的丢失和不适应多智能体,以及缺乏加密安全,非实时性程序经常崩溃。

另一方面,个人认为TCP同步传输消耗大量的资源以及缺乏消息传输优先级的设计。

现在基本上使用消息中间件进行通信,一方面多种通信方式解决了消息拥塞问题,另一方面消息中间件和内核绑定,内核不崩溃,消息中间件不会崩溃。

标签:socket,Linux,通信,间通信,互斥,拥塞,消息,消息中间件,进程
来源: https://www.cnblogs.com/fengmao31/p/16171576.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有