如何将消息发送到多个进程

时间:2018-12-22 07:21:34

标签: erlang elixir

我需要一次将消息发送到多个进程。有没有一种方法,而不必循环所有的PID并将消息分别发送到每个进程?

3 个答案:

答案 0 :(得分:4)

没有办法不涉及迭代,无论是直接(您编写)还是间接(lib为您完成)

答案 1 :(得分:3)

您可以与for循环串联进行

for pid <- listofPids do
   send pid, {:message, self() } 
end

self()为接收过程提供消息发送者的pid。

词汇:pid = 进程ID

如果您准备从Elixir致电Erlang,这里有一个相关的问题: Erlang Multicast

答案 2 :(得分:1)

这取决于您所说的“消息”。对于传递到流程邮箱的消息,已经给出了答案。

此外,还有Elixir核心Registry模块可以实现您想要的功能(基本上是PubSub。)

如果这是您可行的方式,则可能需要查看我编写的Envío库,以简化发布者和订阅者的创建并消除所有需要的样板。

相关问题