我在用
spawn (node, module, function, Args)
global:register_name(name, pid)若要全局在不同节点上注册进程,请执行以下操作。
这是密码
Pid = spawn(mi, loop, [X]),
io:format("Glavni PID: ~w~n", [Pid]),
register(glavni, Pid),
Pid1 = spawn (prvi@Molly, mi, loop_prvi, []),
io:format("Prvi PID: ~w~n", [Pid1]),
global:register_name (prvi, Pid1),当我运行代码时,它不会抛出任何错误,但是当我尝试whereis(process)时,会在生成它的节点上得到未定义的信息。
下面是进程控制台的内容:
Pid = spawn(mi, loop, [X]),
io:format("Glavni PID: ~w~n", [Pid]),
register(glavni, Pid),
Pid1 = spawn (prvi@Molly, mi, loop_prvi, []),
io:format("Prvi PID: ~w~n", [Pid1]),
global:register_name (prvi, Pid1),当我试图从任何节点(主节点或我创建的进程所在的节点)获取进程时,它会说:
(prvi@Molly)2> whereis(prvi).
undefined
(prvi@Molly)3> whereis(prvi@Molly).
undefined发布于 2014-04-30 11:42:36
要在几个节点上注册,您必须:
net_adm:ping(B))spawn(node,...)在节点B上启动一个进程global:register_name(name, Pid)注册global:whereis_name(name)检查注册你至少错过了最后一点,但所有这些都是必要的。
https://stackoverflow.com/questions/23385935
复制相似问题