我正在使用
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(进程)时,我在生成它的节点上得到了未定义。
这是'控制台说的过程:
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(进程)时,无论是主节点还是我创建进程的节点,它都说:
(prvi@Molly)2> whereis(prvi).
undefined
(prvi@Molly)3> whereis(prvi@Molly).
undefined
答案 0 :(得分:3)
要在几个节点上注册,您必须:
你至少错过了最后一点,但所有这些都是必要的。