当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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)。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。