进程间通信主要包括管道, 系统IPC(包括消息队列,信号量,共享存储), socket.
管道包括三种:1)普通管道PIPE, 通常有种限制,一是半双工,只能单向传输;二是只能在父子进程间使用. 2)流管道s_pipe: 去除了第一种限制,可以双向传输. 3)命名管道:name_pipe, 去除了第二种限制,可以在许多并不相关的进程之间进行通讯.
管道: 优点是所有的UNIX实现都支持, 并且在最后一个访问管道的进程终止后,管道就被完全删除;缺陷是管道只允许单向传输或者用于父子进程之间
系统IPC: 优点是功能强大,能在毫不相关进程之间进行通讯; 缺陷是关键字KEY_T使用了内核标识,占用了内核资源,而且只能被显式删除,而且不能使用SOCKET的一些机制,例如select,epoll等,其*享内存的效率最高
socket可以跨网络通讯,其他进程间通讯的方式都不可以,只能是本机进程通讯。
相关文章
- 秋招之路-深刻理解 Linux 进程间七大通信(IPC)
- Linux 快速清除配置文件的注释行和空白行的几种方法(sed,grep,egrep,awk)
- VS2017 启动调试出现 无法启动程序“http://localhost:15613” 操作在当前状态中是非法的。 同时附加进程也是错误的解决方法
- Linux环境变量配置的三个方法--/etc/profile,~/.bashrc,shell
- Linux下环境变量配置方法梳理(.bash_profile和.bashrc的区别)
- 多线程并发:以AQS中acquire()方法为例来分析多线程间的同步与协作
- python并发编程02 /多进程、进程的创建、进程PID、join方法、进程对象属性、守护进程
- Android筆記-Linux Kernel Ftrace (Function Trace)解析(非常强悍的性能分析方法)
- Linux进程间通信 IPC
- unix like下的进程间通信IPC学习小结