进程间的通信方式
1.管道
管道是一种半双工通信方式,一次只能向一边传输,而且使用的进程必须具有亲缘关系
2.命名管道
也是一种半双工的通信方式,但可以在不具有亲缘关系的进程中使用
3.信号
通知接收线程某一事件已经发生,用于不同进程间或者同一进程间的不同线程
4.信号量
是一个计数器,用于限制线程对某一共享资源的访问,比如某一线程正在访问某一共享资源,其他线程不能访问
5.消息队列
消息队列是消息的链表,存放于内核中,一个消息队列由唯一一个队列id
客服了信号传递信息少,管道只能承载无格式字节流(无格式字节流:没有边界,没有结束标识,上一条和下一条无法区分)以及缓冲区小的的缺点
6.共享内存
指两个或者多个进程共享一个给定的存储区
7.套接字
也是一种通信机制,用于不同进程之间的进程通信
进程通信的目的:
1.数据传输
一个进程要将它的数据发送给另一个进程
2.资源共享
多个进程之间共享资源
3.通知事件
一个进程需要通知另一个进程某一个事件已经发生
4.进程控制
有些进程希望控制另一个进程的执行(如Debug进程),此时控制进程希望拦截另一个进程的所有陷入和异常,并能够及时知道它的状态改变