进程通信IPC

1.管道(pipe):在内核中开辟缓冲区(管道)实现进程通信,一个读端,一个写端。

  • 半双工,数据只向一个方向流动,一端读一端写
  • 只用于父子,兄弟进程:创建pipe时,两个文件描述符指向管道两端,fork子进程,继承文件描述符
  • 是独立的文件系统,只存在于内存中
  • 读写操作:满——写阻塞,空——读阻塞

2.有名管道(FIFO):可用于非亲属进程间的通信。

3.消息队列

  • 独立于进程,进程终止,内容不删
  • 可实现消息的随机查询,可按消息类型进行查询

4.共享内存(最快IPC):传递数据不需执行进入内核的系统调用,少了2次文件复制(相比于pipe,FIFO,消息队列)

5.信号量:PV操作(原子操作)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章