如何向 Erlang 中的一组进程发送消息

How to send a message to group of processes in Erlang

将消息send/broadcast发送到进程组的实用方法是什么。

解释:

  • 用户将聚集在聊天室IDETS存储将用于存储用户的进程ID房间号 {Pid, Rid}
  • 问题

    如何同步向所有与房间ID配对的进程发送消息?

    同步是不可能的。

    您可以使用

    获取聊天室 Rid 中的用户 Pid 列表

    ListPid = ets:select(table,[{{'',''},[{'==','',Rid}],['']}])

    并且您可以使用列表理解或 lists:foreach/2

    广播消息

    lists:foreach(fun(X) -> X ! Message end,ListPid)

    根据您在 ETS 中进行搜索的频率,将信息存储为 {Rid,Pid} 并使用可能更快的 ets:lookup/2 可能是个好主意。