當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Elixir Process.monitor用法及代碼示例


Elixir語言中 Process.monitor 相關用法介紹如下。

用法:

monitor(item)
@spec monitor(pid() | {name, node()} | name) :: reference() when name: atom()

從調用進程開始監視給定的item

一旦被監控的進程終止,一條消息就會以如下形式傳遞給監控進程:

{:DOWN, ref, :process, object, reason}

其中:

  • ref 是該函數返回的監視器引用;
  • object 是被監控進程的pid(如果監控PID)或{name, node}(如果監控遠程或本地名稱);
  • reason 是退出原因。

如果在調用 Process.monitor/1 時進程已經死亡,則會立即傳遞 :DOWN 消息。

有關示例,請參見"The need for monitoring"。有關詳細信息,請參閱 :erlang.monitor/2

由編譯器內聯。

例子

pid = spawn(fn -> 1 + 2 end)
#=> #PID<0.118.0>
Process.monitor(pid)
#=> #Reference<0.906660723.3006791681.40191>
Process.exit(pid, :kill)
#=> true
receive do
  msg -> msg
end
#=> {:DOWN, #Reference<0.906660723.3006791681.40191>, :process, #PID<0.118.0>, :noproc}

相關用法


注:本文由純淨天空篩選整理自elixir-lang.org大神的英文原創作品 Process.monitor(item)。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。