进程间通信
在Erlang中进行进程间通信的唯一方法就是消息传递。一个消息通过原语!(send)发送给另一个进程:
Pid ! Message
send是一个会对其参数进行求值的原语。它的返回值是发送的消息。
原语receive被用于接收消息。它的语法如下:
receive
Message1 [when Guard1] ->
Actions1 ;
Message2 [when Guard2] ->
Actions2 ;
end.
每个进程都有一个邮箱,所有发送到该进程的消息都被按照它们到达的顺序依次存储在邮箱里。
当找到一个匹配的消息并且对应的保护式(Guard)满足的时候,这个消息就被选中,