0

簡単な問題のように思えますが、私はそれを理解することができません。そして、私はRuby on Railsが初めてです。

1    pid = Process.fork
2    
3      if pid.nil? then   
4        puts "Child process"
5      else
6        puts " Continuing parent proceesss"
7      end  
8       
9      puts "This line should be printed only once, by parent"

私の理解では、行 9 は親によって一度だけ印刷されるべきであるということでした。しかし、それは2回印刷されています。親子で!!

親でのみ9行目を実行するにはどうすればよいですか? つまり、4行目の後に子を終了させたい.

ご協力いただきありがとうございます。

4

1 に答える 1

4

ハ、あなたはほとんどそれを持っていました。4行目の後に置く必要がありますexit

if pid.nil? then
    puts "Child process"
    exit
else
    ...

プロセスのフォークは、両方のプロセスを続行できるように設計されていますよね? プロセスを 2 つのコピーに分割し、両方ともフォークされた場所から続行します。子を終了させたい場合は、終了するように指示する必要があります。

于 2012-07-30T21:06:46.330 に答える