2008-03-24から1日間の記事一覧

rubyでスレッドを用いて検索範囲を分担する

タイトル通り #!/usr/bin/ruby # 1からnまでの数を配列srcにランダムにセット src=[] nums=(1..20).to_a nums.size.times do src.push(nums.delete_at(rand(nums.size))) end # srcを出力する p src a=[] #一つめのスレッド a.push Thread.fork{ sleep rand…

rubyとスレッドと大域変数 

そうかrubyにはスレッドがあった。 #!/usr/bin/ruby def foo(a) sleep rand(5) puts a end Thread.fork{ foo("1")} Thread.fork{ foo("2")} Thread.fork{ foo("3")} foo("0")結果 $ ruby thread.rb 0 $ ruby thread.rb 3 2 1 0 $ ruby thread.rb 2 0見事に親…

rubyとforkと変数…大域変数が作れない

rubyはcygwin上でもforkが平気で出来るまれな言語。 $ ruby -e 'fork{puts "child"}; puts "parent"' parent child $ ruby -e 'fork{puts "child"}; Process.wait; puts "parent"' child parentきちんとwaitも実装されている。 $ ruby -e 'fork{puts "1"};fo…