Erlang消息接收命令

Ham*_*ani 3 parallel-processing concurrency erlang message-passing

了解这些关于Erlang消息传递行为的时间顺序的事实:

如果进程A向进程B发送两条消息,则保证两条消息按它们发送的顺序到达.

如果进程A向进程B发送消息,然后向进程C发送消息,则无法保证它们的接收顺序.

同样,如果进程A和B向C发送消息,则无法保证接收消息的顺序.

我的问题是:

如果进程A和B向进程C发送消息,当A和B在相同的(微)时间内发送消息时,具有相同的内部功能,在同一节点和同一台机器中可以发送消息,接收顺序是什么?运行并行进程?

joh*_*hlo 5

在这种情况下,您也无法对接收订单做出任何假设.接收顺序将取决于诸如计划何时运行进程以及可能在相同代码的不同运行之间不同的因素.

  • 究竟.在多核机器上,即使您在单个Erlang节点内的进程之间传递消息,这些进程也可以映射到不同的线程,并且可以完全独立于彼此执行.因此消息可以以任何顺序结束于C. (3认同)