2016-07-04 15 views

Odpowiedz

9

Istnieją trzy różnice między gen_server:cast/2 i gen_server:abcast/2,3:

  • gen_server:abcast/3 pobiera listę węzłów docelowych określające gdzie można znaleźć gen_server przypadki zarejestrowane przez określoną nazwą, natomiast gen_server:abcast/2 wysyła do listy [node() | nodes()], natomiast gen_server:cast/2 może adresować tylko jedną instancję gen_server.
  • Aby zidentyfikować serwer docelowy, gen_server:abcast/2,3 przyjmuje tylko nazwę, jako atom, natomiast gen_server:cast/2 może przyjmować atom, pid lub dla opcji, dowolny termin Erlang.
  • zwraca abcast, natomiast gen_server:cast/2 zwraca ok.

Pierwszą jest to najbardziej istotne, gdyż pozwala na asynchronicznej transmisji (tj abcast) do zestawu gen_server przypadkach całej zestawu węzłów.

Powiązane problemy