Linux--进程间通信总结
来源:互联网 发布:个体户办淘宝企业店铺 编辑:程序博客网 时间:2024/05/22 00:08
管道
管道也叫匿名管道(pipe),是一种半双工的通信方式,数据只能单向流动。如果要进行双工通信,需要建立两个管道。管道只能在具有亲缘关系的进程间使用,例如父子进程或兄弟进程。
管道的特点:
单向通信。
依赖文件系统。管道的生存周期随进程的退出,管道就被销毁(随进程)。
管道只能用于血缘关系的进程,通常用于父子进程。
管道在进行读写操作时,以数据流方式。
同步访问。
参考博客:linux进程间通信–管道
命名管道
FIFO不同于管道之处在于它提供一个路径名与之关联,以FIFO的文件形式存在于文件系统中。这样,即使与FIFO的创建进程不存在亲缘关系的进程,只要可以访问该路径,就能够彼此通过FIFO相互通信(能够访问该路径的进程以及FIFO的创建进程之间),因此,通过FIFO不相关的进程也能交换数据。
命名管道特点:
1.FIFO是作为一个特殊的设备文件存在;
2.不同祖先进程的进程之间可以共享数据;
3.使用完后FIFO将继续保存。
参考博客:linux进程间通信–命名管道
信号
信号是在软件层次上对中断机制的一种模拟,在原理上,一个进程收到一个信号与处理器收到一个中断请求可以说是一样的。信号是异步的,一个进程不必通过任何操作来等待信号的到达,事实上,进程也不知道信号到底什么时候到达。信号事件的发生有两个来源:硬件来源(比如我们按下了键盘或者其它硬件故障);软件来源,最常用发送信号的系统函数是kill, raise,alarm和setitimer以及sigqueue函数,软件来源还包括一些非法运算等操作。
消息队列
消息队列是由消息的链表组成,存放在内核中并由消息队列标识符标识。
消息队列的特点:
1.消息队列是消息的链表,具有特定的格式,存放在内存中并由消息队列标识符标识.
2.消息队列允许一个或多个进程向它写入与读取消息.
3.消息队列的生命周期随内核。
4.消息队列可以实现双向通信。
参考博客:linux进程间通信–消息队列
信号量
信号量与其他进程间通信方式不大相同,它主要提供对进程间共享资源访问控制机制。相当于内存中的标志,进程可以根据它判定是否能够访问某些共享资源,同时,进程也可以修改该标志。除了用于访问控制外,还可用于进程同步。
参考博客:linux进程间通信–信号量
共享内存
共享内存就是映射一段被其他进程所访问的内存,这段共享内存由一个进程创建,可由多个进程访问。共享内存是最快的IPC方式,它是针对其他进程间通信方式的低运行效率而专门设计的。它往往与其他通信机制,如信号量,配合使用,来实现进程间的同步和通信。
参考博客:linux进程间通信–共享内存
套接字
套接字也是进程间通信的一种方式,与其他方式不同的是,它可以用在不同主机间的进程通信(也是它的主要用途)。
- Linux 进程间通信总结
- Linux进程间通信总结
- Linux进程间通信总结
- linux进程间通信总结
- Linux进程间通信总结
- Linux 进程间通信总结
- Linux--进程间通信总结
- linux------进程通信总结
- linux 进程、线程间通信总结
- linux 进程间通信方式总结
- linux进程间通信-----信号总结
- linux进程间通信-----管道总结实例
- LInux 进程间通信-FIFO总结
- linux下进程间通信的总结
- linux进程间通信(IPC)机制总结
- Linux进程间通信方式总结
- windows和linux进程间通信,线程间通信总结
- Linux进程通信学习总结
- testNG测试报告美化
- 时间复杂度和空间复杂度详解
- C#180课的主要内容
- java学习 jstl标签中remove标签的使用
- 算法设计与结构基础作业第十八周
- Linux--进程间通信总结
- IOS APP启动优化路线图
- Fragment
- java面向对象
- helloword
- 数据库技术发展史
- testng和spring的整合
- CSS基础了解
- IOS APP启动优化-架构梳理