进程间通讯
文章平均质量分 87
Dxiaoru
这个作者很懒,什么都没留下…
展开
-
进程间通讯(1)---信号
多任务并发环境中,每个进程之间相互独立,不同的进程运行在各自不同的内存空间中,因此,进程之间的信息传递不能通过变量或者其他数据直接进行沟通。所以有了可在进程间通讯的方法:信号、管道、共享内存、信号量、消息队列、还有socket。信号:信号其实只是一种通知机制,如:子进程给父进程发送SIGCHLD信号,告知父进程,自己结束了。都是系统预先定义好的某些特定事件,收到该信号的进程会采取相...原创 2018-07-29 16:49:41 · 195 阅读 · 0 评论 -
进程间通讯(2)---管道
管道:半双工通讯数据流向是单向的、先进先出的。只能一个进程读、一个进程写。数据从管道中读出后,就会被删除。如果管道中没有数据,读操作就会被阻塞,直到管道中有数据可读;而如果管道的满的,写操作就会被阻塞,直到管道中有足够大的空间可用。 ①有名管道(fifo):在任意两个进程间通信。有属性信息、inode结点存在磁盘上。在文件目录树中存在管道文件标识。但是管道文件不占据磁盘空间,需要传...原创 2018-07-29 17:00:38 · 224 阅读 · 0 评论 -
进程间通讯(4)--消息队列
消息队列:两个不相关的进程中进行通讯 “消息队列”是一个存放在内核的队列,是在消息的传输过程中保存消息的容器。因为它消息队列保存在内核中,所以我们必须显示地删除一个消息队列。否则这个消息队列会一直存在于内核找到操作系统重启(内核重启)。消息队列中传递的消息是一个包含消息类型的结构体(数据块),进程可以根据消息类型独立的接收含有不同类型值的数据块。消息队列保存消息,它独立于发...原创 2018-08-09 17:00:34 · 247 阅读 · 0 评论 -
进程间通讯(3)信号量 & 共享内存
信号量:用于进程间同步控制 信号量就是具有原子性的计数器,相当于一把锁,进程要访问临资源时,必须向信号量获取锁,才能访问这个临界资源,同时其他进程因为无法“获得锁”而不能访问该临界资源,只有以获得锁的进程访问完了临界资源,将锁还给信号量后,其他进程才能“获得锁”去执行临界区代码。从而实现了进程间的同步控制。 对信号量只有两种操作:等待(P)、发送信号(V)...原创 2018-08-07 16:18:25 · 315 阅读 · 0 评论