Erlang:这个{from, Pid, Ref}形式的进程标识符是什么?



我现在面临一个问题。当我检查erl_crash。转储,我发现一些东西如下:

=proc:<0.19275.17>  
State: Scheduled  
Spawned as: proc_lib:init_p/5  
Spawned by: <0.18723.17>  
Started: Wed May 8 13:30:40 2013  
Message queue length: 1  
Number of heap fragments: 0  
Heap fragment data: 0  
Link list: [<0.20051.17>, <0.9976.18>, ..., **{from,<6524.13.0>,#Ref<6524.0.1.37040>}, {from,<6474.13.0>,#Ref<6474.0.1.36682>}, {from,<6470.13.0>,#Ref<6470.0.1.34219>}**, ...]

在程序<0.19275.17>的链接列表中有类似{from, Pid, Ref}的东西。我不知道这些奇怪的进程标识符是什么。我想这可能与"过程监控"有关。我说的对吗?我还想知道如何生成这样的进程标识符以及如何使用它们?

提前感谢:)

这意味着该进程受到其他进程的监视。从文档:

如果使用进程监控,该字段还告诉在哪个监视生效的方向,即"到"a的链接进程告诉您"当前"进程正在监视另一个进程一个"来自"一个过程的链接告诉你另一个过程是

您可以在这里找到更多信息

我认为{from,<6524.13.0>,#Ref<6524.0.1.37040>}是你注册了一个全局名称,所以全局名称服务器正在监视这个过程。

更多信息:http://www.erlang.org/doc/man/global.html

最新更新