Rob*_*loi 12
在进程和另一个进程之间保留消息顺序.阅读常见问题解答:
10.9是否保证了信息接收的顺序?
是的,但只在一个过程中.
如果有一个实时进程并且你发送消息A然后发送消息B,则保证如果消息B到达,则消息A到达它之前.
另一方面,假设进程P,Q和R.P将消息A发送到Q,然后将消息B发送到R.不能保证A在B之前到达.(如果需要,则分布式Erlang会非常困难) !)
关于如何在进程中使用消息,@ knutin是正确的.另外,请注意,您可以使用两个后续的receive语句来确保在另一个消息之后使用某个消息:
receive
first ->
do_first()
end,
receive
second ->
do_second()
end
Run Code Online (Sandbox Code Playgroud)
receive语句是阻塞的.这将确保您永远不会do_second()在您之前do_first().从@ knutin的第二个解决方案的不同之处在于,在这种情况下,如果事情不是重要的只是之前到达重要的一个,你排队重要的一点.