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

如何向Erlang中的一组进程发送消息,erlang,broadcast,Erlang,Broadcast,向一组进程发送/广播消息的实用方法是什么 说明: 用户将聚集在聊天室ID,一个ETS存储器将用于存储用户的进程ID和聊天室ID{Pid,Rid} 问题: 如何同步向与房间ID配对的所有进程发送消息?不可能同步 您可以使用Rid在聊天室中获取用户列表 ListPid=ets:select(表,[{{'$1','$2'},[{'='','$2',Rid}],'$1']}]) 您可以使用列表理解或lists:foreach/2 list:foreach(fun(X)->X!消息结束,ListPid)

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

说明:
  • 用户将聚集在聊天室
    ID
    ,一个
    ETS
    存储器将用于存储用户的进程ID聊天室ID
    {Pid,Rid}
  • 问题:
    如何同步向与房间ID配对的所有进程发送消息?

    不可能同步

    您可以使用Rid在聊天室中获取用户列表

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

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

    list:foreach(fun(X)->X!消息结束,ListPid)

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