4.2 Rubyでマルチプロセス
コンちゃんの改良にあたってマルチプロセスないしマルチスレッドの機構が必要になったのでメモ。
Ruby(テスト環境ではRuby1.9.3)でマルチプロセスをしたい時は、以下のように書く。
Process.fork do # ここに処理を書く end
Process.forkで囲んだところに、子プロセスの処理を書く。
以下、テストコードとその結果。
Process.fork do 10.times do puts "Chinchin!!!" sleep 1 end end 5.times do puts "Hello!!!!" sleep 1 end
Hello!!!! Chinchin!!! Hello!!!! Chinchin!!! Hello!!!! Chinchin!!! Hello!!!! Chinchin!!! Hello!!!! Chinchin!!! Chinchin!!! okabi@ibako:~/$ Chinchin!!! Chinchin!!! Chinchin!!! Chinchin!!!
親プロセスが死ぬと端末的にはプロセス全体が終了としたと見なすらしい。
テスト環境はvbox上のUbuntu12.04だが、低スペにしたからか日本語入力処理が遅すぎて困る。デスクトップ買うか組むかしてLinux専用機作りたいでござる。