DesignAssembler

備忘録に近い

RubyのThread

Thread

文字通りマルチスレッドを実現します。

RubyのThreadの使い方は、以下のブロックに実行したいコードを入れるだけです。

Thread.new do
end

速度計測

まずはシングルスレッド

#bench1.rb
1000000.times do |i|
  2 ** 10000
end
$ time ruby bench1.rb

real    0m8.741s
user    0m7.154s
sys    0m0.058s

8秒かかりました。

次はThreadを使った場合です。

#bench2.rb
Thread.new do
  1000000.times do |i|
    2 ** 10000
  end
end
$ time ruby bench2.rb

real    0m0.124s
user    0m0.072s
sys    0m0.015s

0.1秒
速い・・・

Railsでの使用例参考

d.hatena.ne.jp

shirusu-ni-tarazu.hatenablog.jp

チューニングって楽しいですよね。

参考

qiita.com