常用的进程间通信方式有信号、信号量、消息队列、共享内存。
所谓进程通信,就是不同进程之间进行一些“接触”。这种接触有简单也有复杂。机制不同复杂度也不同。
通信是一个广义的定义,不仅仅指传递一些message。
它们使用的方法基本是相同的,所以只要掌握了一种使用方法,然后记住其他的即可。
信号和信号量是不同的,它们虽然都可以用来同步和互斥,但是信号是使用信号处理器来进行的,信号量是使用P、V操作来实现的。
消息队列是比较高级的一种进程间通信方式,因为它真的可以在进程间传送message,传送普通字符串也可以。
一个消息队列可以被多个进程所共享(IPC就是在这个基础上进行的);如果一个进程消息太多,一个消息队列放不下,也可以用多于一个的消息队列(不过管理可能会比较复杂)。共享消息队列的进程所发送的消息除了message本身外还有一个标志,这个标志可以指明该消息将由哪个进程或者哪类进程接受。每一个共享消息队列的进程针对这个队列也有自己的标志,可以用来声明自己的身份。