如何向多个进程发送消息
How do I send a message to multiple processes
我需要同时向多个进程发送消息。有没有一种方法可以做到这一点,而无需遍历所有 PID 并将消息单独发送到每个进程?
您可以通过 for
循环
串联完成
for pid <- listofPids do
send pid, {:message, self() }
end
self()
为接收进程提供消息发送者的 pid。
词汇表:pid = 进程 ID
如果您准备从 Elixir 调用 Erlang,这里有一个相关问题:
Erlang Multicast
没有不涉及迭代的方法,无论是直接的(你写的)还是间接的(一个库为你做的)
这取决于你怎么称呼“消息”。对于传递到进程邮箱的消息,已经给出了答案。
此外,还有 Elixir 核心 Registry
module that implements exactly what do you want (basically PubSub
。)
如果这是您可行的方法,您可能需要查看我编写的 Envío
库,以简化发布者和订阅者的创建并消除所有需要的样板文件。
我需要同时向多个进程发送消息。有没有一种方法可以做到这一点,而无需遍历所有 PID 并将消息单独发送到每个进程?
您可以通过 for
循环
for pid <- listofPids do
send pid, {:message, self() }
end
self()
为接收进程提供消息发送者的 pid。
词汇表:pid = 进程 ID
如果您准备从 Elixir 调用 Erlang,这里有一个相关问题: Erlang Multicast
没有不涉及迭代的方法,无论是直接的(你写的)还是间接的(一个库为你做的)
这取决于你怎么称呼“消息”。对于传递到进程邮箱的消息,已经给出了答案。
此外,还有 Elixir 核心 Registry
module that implements exactly what do you want (basically PubSub
。)
如果这是您可行的方法,您可能需要查看我编写的 Envío
库,以简化发布者和订阅者的创建并消除所有需要的样板文件。