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 Process.demonitor用法及代码示例
- Elixir Process.delete用法及代码示例
- Elixir Process.whereis用法及代码示例
- Elixir Process.group_leader用法及代码示例
- Elixir Process.put用法及代码示例
- Elixir Process.registered用法及代码示例
- Elixir Process.register用法及代码示例
- Elixir Process.get用法及代码示例
- Elixir Process.exit用法及代码示例
- Elixir Process.unregister用法及代码示例
- Elixir Process.get_keys用法及代码示例
- Elixir Process.sleep用法及代码示例
- Elixir Process.send用法及代码示例
- Elixir Process.spawn用法及代码示例
- Elixir Process.send_after用法及代码示例
- Elixir Process.list用法及代码示例
- Elixir Protocol.extract_protocols用法及代码示例
- Elixir Protocol.consolidate用法及代码示例
- Elixir Protocol.derive用法及代码示例
- Elixir Protocol用法及代码示例
- Elixir Protocol.extract_impls用法及代码示例
- Elixir Path.basename用法及代码示例
- Elixir Path.rootname用法及代码示例
- Elixir Path.type用法及代码示例
- Elixir Path.split用法及代码示例
注:本文由纯净天空筛选整理自elixir-lang.org大神的英文原创作品 Process.monitor(item)。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。