代码之家  ›  专栏  ›  技术社区  ›  Roger Johansson

Erlang消息循环

  •  6
  • Roger Johansson  · 技术社区  · 14 年前

    erlang中的消息循环是如何工作的,它们在处理消息时是同步的吗?

    据我所知,循环将从“接收”一条消息开始,然后执行某个操作并执行循环的另一个迭代。

    2 回复  |  直到 14 年前
        1
  •  9
  •   Frank Shearar    14 年前

    发送消息是异步的。处理一条消息是同步的-一次接收一条消息-因为每个进程都有自己的(而且只有一个)邮箱。

        2
  •  4
  •   weismat    14 年前

    从手册上( Erlang concurrency

    每个进程都有自己的消息输入队列。接收到的新消息放在队列的末尾。当进程执行接收时,队列中的第一条消息与接收中的第一个模式匹配,如果匹配,则从队列中删除消息并执行与该模式对应的操作。

    当然,Erlang实现是“聪明”的,它最大限度地减少了根据每个接收中的模式测试每条消息的次数。