首页 > 系统服务 > 详细

进程间通信

时间:2020-01-10 17:47:46      阅读:86      评论:0      收藏:0      [点我收藏+]

五种通讯方式

1.管道:速度慢,容量有限,只有父子进程能通讯    

  在内核中申请一块固定大小的缓冲区,程序有写入和读取的权利,一般使用fork函数实现父子进程的通信.

int pipe(int fd[2])
fd[1]写入数据,fd[0]读出数据,默认情况,这对描述符都是阻塞.

 

2.FIFO:任何进程间都能通讯,但速度慢    

3.消息队列:容量受到系统限制,且要注意第一次读的时候,要考虑上一次没有读完数据的问题    

4.信号量:不能传递复杂消息,只能用来同步 。信号量是一个计数器,可以控制多个进程对共享数据的访问。

5.共享内存区:能够很容易控制容量,速度快,但要保持同步,比如一个进程在写的时候,另一个进程要注意读写的问题,相当于线程中的线程安全,当然,共享内存区同样可以用作线程间通讯,不过没这个必要,线程间本来就已经共享了同一进程内的一块内存。

  共享内存允许两个进程访问同一块内存区域,它们使用同一个key值标记.

 

6.信号处理机制:用于通知接受进程某一事件已经发生。

进程间通信

原文:https://www.cnblogs.com/goingnow/p/12177040.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!