【发布时间】:2019-05-12 04:09:03
【问题描述】:
我正在尝试从一个进程发送一条消息,该消息是我派生的另一个进程进行分配,我觉得我在这里非常接近,但我认为我的语法有点偏离:
-module(assignment6).
-export([start/1, process1/2, process2/0, send_message/2]).
process1(N, Pid) ->
Message = "This is the original Message",
if
N == 1 ->
timer:sleep(3000),
send_message(Pid, Message);
N > 1 ->
timer:sleep(3000),
send_message(Pid, Message),
process1(N-1, Pid);
true ->
io:fwrite("Negative/0, Int/Floating-Point Numbers not allowed")
end.
process2() ->
recieve
Message ->
io:fwrite(Message),
io:fwrite("~n");
end.
send_message(Pid, Message) ->
Pid ! {Message}.
start(N) ->
Pid = spawn(assignment6, process2, []),
spawn(assignment6, process1, [N, Pid]).
这个程序的目标是消息,将在函数启动时打印 N 次,但要足够延迟,以便我可以在运行中热交换消息的措辞。我只是无法将消息发送到process2 以进行打印。
【问题讨论】:
标签: recursion erlang message-passing erlang-shell hotswap