Linux进程间通信
2022/4/21 7:18:11
本文主要是介绍Linux进程间通信,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
信号量
通过两组互斥锁完成进程同步,几乎不可能传递消息。其实就是个互斥结构,很常见的东西。只是当年提出的早。
比如音频播放完了,机器人才能接受新的音频,用一个互斥锁锁住。
比如虚拟人动画在未播放完当前动画时候,不能接受新的动画指令。用一个互斥锁锁住。
管道
父子进程,无名管道通信。最好父子限制读写。
FIFO,有名管道通信。速度很慢。比access数据库慢,比socket慢。就像是socket方式通信却每次bit数组仅传递1位消息。
共享内存。
单机速度快。
原理是用一个指针指向内存。然后读写这个指针,仅仅能读一次。
共享内容状态,读写共享内容同时存在状态为2,仅一个存在为1,都不存在则无
ipcs
消息队列
缺乏了解。速度不错。总感觉传输大小应该有限制。
Socket
Socket单机速度和局域网速度实际上很快。在RIMA机器人上面实际测试过。当然大规模的传送图形,视频流应该有问题。
ROS机器人在2007年没有使用socket的原因是消息拥塞,以及不适应多智能体。但是ROS1的问题依然是消息拥塞的丢失和不适应多智能体,以及缺乏加密安全,非实时性程序经常崩溃。
另一方面,个人认为TCP同步传输消耗大量的资源以及缺乏消息传输优先级的设计。
现在基本上使用消息中间件进行通信,一方面多种通信方式解决了消息拥塞问题,另一方面消息中间件和内核绑定,内核不崩溃,消息中间件不会崩溃。
这篇关于Linux进程间通信的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-06-0600-macOS和Linux安装和管理多个Python版本
- 2024-03-30[译]漫画SELinux概念
- 2024-03-29linux 移动文件
- 2024-03-28linux .so file
- 2024-03-28Linux 磁盘管理
- 2024-03-28Linux学习笔记(十三)磁盘管理(一):磁盘分区
- 2024-03-26linux 创建 文件
- 2024-03-25使用SecureCRT对Linux vim进行颜色设置
- 2024-03-202019-2020-12 20199317 《Linux内核原理与分析》 第十二周作业
- 2024-03-20Linux运维的第二周总结