进程通信有直接和间接两种方式。
1)直接通信
直接通信是将消息直接发送给指定进程,因此,Send和Receive原语中应指出进程名 字。其调用格式如下:
Send(Wh0,Message)
Receive(Wh0,Message)
发送消息给指定进程或一组进程
从约定进程接受消息
2)间接通信
这种通信是以信箱为媒介实现通信的,只要接收信件的进程设立一个信箱,这样,若干个进程都可以向同一个进程发送信件。因此,Send和Receive原语中应给出信箱名。其调用格式如下:
Send(N,M) 将信件M发送到信箱N中
Receive(N,x) 信箱N中取一封信存入x
但有的系统还提供带标记的发送,其调用格式如下:
Send(Wh0,Message,tag)
用Tag可以指定进程是否要等到接收进程取到信息再继续运行。一般接收进程总是要等待消息到达后才继续运行。