之前我总结了有关进程及进程控制的相关知识,不是很了解的朋友可以看一看:
进程:https://blog.youkuaiyun.com/Sun_Life_/article/details/88580785
进程控制:https://blog.youkuaiyun.com/Sun_Life_/article/details/90049461
这篇文章主要为大家总结一下进程间通信的几种方式:
首先请大家想一个问题,终端下的各个进程间相对独立,犹如一座座孤岛,那么如果没有一种方式在这些岛屿之间传送消息和物资,那么岛上的人们就无法正常的协作沟通。进程也是一样,为了相互协作就需要进行进程间通信。
进程间通信的目的
-
数据传输
场景:一个进程需要将它的数据发送给另一个进程
-
资源共享
场景:多个进程之间共享同样的资源
-
通知事件
场景:一个进程需要向另一个或一组进程发送消息,通知事件(如子进程终止通知父进程)
-
进程控制
场景:有些进程希望完全控制另一个进程的执行(如Debug进程),此时需要拦截另一个进程的所有异常,并能及时知 道其状态改变
进程间通信方式
-
管道
进程间通信方式——管道:https://blog.youkuaiyun.com/Sun_Life_/article/details/90049515
-
消息队列
进程间通信方式——消息队列:https://blog.youkuaiyun.com/Sun_Life_/article/details/90382863
-
共享内存
进程间通信方式——共享内存:https://blog.youkuaiyun.com/Sun_Life_/article/details/90412244
-
信号量
IPC相关命令
ipcs 查看IPC信息
-q 查看消息队列
-m 查看共享内存
-s 查看信号量
ipcrm 删除IPC
-q msgid
-m msgid
-s msgid