1、管道与有名管道
管道可用于具有亲缘关系的父子进程间通信,有名管道除了具有管道的特点外,还允许无亲缘关系的进程进行通信。
2、信号
信号是软件层次上对中断机制的一种模拟,它是一种复杂的通信方式,用于通知进程某事件的发生,一个进程收到一个信号与处理器收到一个中断请求的效果上是一致的。
3、消息队列
消息队列是消息的链接表,它克服了以上两种方式中信号量有限的缺点,具有写权限的进程可以按照一定规则在消息队列中添加消息,具有读权限的进程可以按照一定规则从其中读取消息。
4、共享内存
共享内存是最有用的进程通信方式,它使得多进程可以访问同一块内存空间,不同进程可以看到对方进程中对共享数据的更新。这种方式需要某种同步操作,比如互斥锁和信号量。
5、信号量
信号量主要作为进程之间以及不同线程之间同步和互斥的手段。
6、套接字(socket)
套接字是更通用的进程通信机制,它可用于网络中不同机器之间的进程间通信,应用非常广泛。