0
私はエリクシールには新しく、最新のプロセスについて学んでいます。練習では、私は2つのプロセスから "ping"と "pong"を印刷するping pongプログラムを書いた。プロセスは、1つまたは2つのメッセージを受信した後、常に死んでいる。ここに私のコードはエリクシールプロセスがメッセージを受信していません
defmodule Pingpong do
def play do
receive do
{sender, :ping} ->
IO.puts "ping"
send sender, {self, :pong}
play
{sender, :pong} ->
IO.puts "pong"
send sender, {self, :ping}
play
end
end
def start() do
a = spawn(Pingpong, :play, [])
b = spawn(Pingpong, :play, [])
send a, {b, :ping}
end
end
ある時々私は、出力
$ elixir -r pingpong.exs -e "Pingpong.start"
> ping
または複数行のただ一つだけのラインを持って、その後、
ping
pong
ping
pong
ping
pong
を停止した。しかし、私はそれが継続的にIまでの出力を印刷すべきだと思いますプログラムを停止します。 上記のコードで何が問題になることがありますか?
こと:timer.sleep(無限大)は'それを修正しました。ありがとうございました! –