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



向进程组发送/广播消息的实用方法是什么。

说明:

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

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

    同步是不可能的。

    你可以使用在聊天室Rid中获得用户Pid的列表

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

    你可以用列表理解或lists:foreach/2 来广播消息

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

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

    最新更新