Представим, что я создаю несколько дочерних процессов в 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 в какой-либо структуре данных и перебрать ее, чтобы сделать это, но если есть какой-то канонический способ сделать это, кажется, что это будет более эффективным и менее подверженным ошибкам.