erlang:monitor使用

来源:互联网 发布:婚礼 知乎 编辑:程序博客网 时间:2024/04/29 19:46

进程单向监控-Monitor

link方式可以建立进程之间的双向链接关系,我们可以通过monitor实现单向的监控,这在gen_server代码里面可以看到对应的例子

  •  erlang:monitor(process, Caller), %建立单向监控
  • 被监控进程死掉发送的消息规格:   {'DOWN',Mref,process,Pid,Reason}
  • 解除监控:erlang:demonitor(Ref)

shell例子

1> F = fun() -> io:format("finished.~n") end.  #Fun<erl_eval.20.111823515>2> Pid = spawn(F).finished.<0.45.0>3> erlang:monitor(process, Pid).    % process Pid has already exited.#Ref<0.0.0.76>4> flush().Shell got {'DOWN',#Ref<0.0.0.76>,process,<0.45.0>,noproc}ok