进程间通信的几种方式

1.管道/匿名管道
2.有名管道
3.信号
4.消息队列
5.共享内存
6.信号量
7.套接字
1)管道是特殊类型的文件,在满足先入先出的原则条件下可以进行读写,但不能进行定位读写。
(2)匿名管道是单向的,只能在有亲缘关系的进程间通信;有名管道以磁盘文件的方式存在,可以实现本机任意两个进程通信。
(3)无名管道阻塞问题:无名管道无需显示打开,创建时直接返回文件描述符,在读写时需要确定对方的存在,否则将退出。如果当前进程向无名管道的一端写数据,必须确定另一端有某一进程。如果写入无名管道的数据超过其最大值,写操作将阻塞,如果管道中没有数据,读操作将阻塞,如果管道发现另一端断开,将自动退出。
(4)有名管道阻塞问题:有名管道在打开时需要确实对方的存在,否则将阻塞。即以读方式打开某管道,在此之前必须一个进程以写方式打开管道,否则阻塞。此外,可以以读写(O_RDWR)模式打开有名管道,即当前进程读,当前进程写,不会阻塞。
匿名管道和有名管道

具体详见

https://maimai.cn/article/detail?fid=1346095471&efid=K7j_3D3Yik89nFWbCWRUIA

posted @ 2019-10-11 22:01  PLAY_JOY  阅读(124)  评论(0编辑  收藏  举报