【发布时间】:2018-07-03 03:49:52
【问题描述】:
假设我在 elixir 中生成了多个子进程。
defmodule Child do
def start(name) do
receive do
msg -> IO.puts "Message received by #{name}: #{inspect msg}"
end
end
end
defmodule Parent do
def main do
child1 = spawn_link (fn -> Child.start("1") end)
child2 = spawn_link (fn -> Child.start("2") end)
child3 = spawn_link (fn -> Child.start("3") end)
end
end
我是否可以向当前进程(或其他进程)的所有子进程发送消息?
send_to_children self(), "hello to all children"
例如,我可以通过某种方式告诉运行时向链接到当前进程的所有进程广播消息吗?我当然可以将所有生成的 pid 存储在某种数据结构中并循环执行此操作,但如果有某种规范的方法来执行此操作,它似乎会更有效且不易出错。
【问题讨论】:
标签: erlang elixir message-passing