Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

タグ

RubyとThreadに関するbabydaemonsのブックマーク (4)

  • Rubyで並列処理が簡単にできるgem parallel - 酒と泪とRubyとRailsと

    require 'rubygems' require 'parallel' require 'open-uri' require 'digest/md5' urls = [ 'http://farm4.staticflickr.com/3052/3086132328_e2041be795.jpg', 'http://farm7.staticflickr.com/6053/6312937936_cebaf2feb9.jpg', 'http://farm1.staticflickr.com/54/131841577_0e67642c02.jpg', 'http://farm3.staticflickr.com/2293/2266151759_058e732577.jpg' ] Parallel.each(urls, in_threads: 2) {|url| puts "start downl

  • 第19章 スレッド

    rubyスレッド スレッドは「みんな一斉に動く」というのが建前だが、実際には少しの時間ず つ順番に動いているわけだ。厳密に言えばマルチCPUのマシンでそれなりに工 夫すれば同時に二つ動いたりもできるが、それでもCPUの数以上のスレッドが あればやはり順番に動かなければならない。 つまりスレッドを作り出すためにはどこかで誰かがスレッドを切り替えてやら ないといけないわけだが、その手法には大きく分けて二種類ある。 カーネルレベルスレッドと ユーザレベルスレッドだ。これはどちらも読んで字の如く、ス レッドというものをカーネルで作るかユーザレベルで作るかという違いである。 カーネルレベルならマルチCPUを生かして複数のスレッドを同時に動かしたり もできる。 ではrubyのスレッドはどうなのかと言えば、これはユーザレベルスレッドで ある。 そして(それゆえ)同時に動けるスレッドは厳密にただ一つと制限

    babydaemons
    babydaemons 2011/09/27
    ソースコードをこうやって解説してくれるのありがたい。
  • sleep関数とマルチスレッド - Tociyuki::Diary

    「増補改訂版 Java言語で学ぶデザインパターン入門 マルチスレッド編」のデザパタ第 5 章 Producer-Consumer の補講 1 では、スリープ状態や待ち状態のキャンセルの説明です。 JavaRuby のマルチスレッドを比べると、Java の方が例外処理など充実しているのがわかります。その点、Ruby は「べっ、べつにあんたのためにマルチスレッド使えるようにしているのじゃないからね。Java がうらやましいならあんたが勝手にライブラリを作ればいいんだわ!」という感じです。 それはともかくとして、ここで気になるのは sleep 関数です。Java では Thread.sleep() メソッドを使うのに、Ruby ではこれまで説明なしで sleep 関数を使ってきました。期待する通りに動作していますが、リファレンスマニュアルにもマルチスレッドとどう関係があるのか明記されていま

    sleep関数とマルチスレッド - Tociyuki::Diary
  • PHPでマルチスレッドプログラミングは可能ですか? - OKWAVE

    >Python も mod_python とかで動かしていれば、スレッドは使えないということでしょうか? いや、Pythonは、threadモジュールというスレッド生成のモジュールがあってそれで対応しているから、問題なく使えるはず。ただ、mod_pythonで既にサーバー内の1スレッドとしてマルチスレッドに動作しているのに、そんなことをする意味があるのか?という気もする。PHPで「無意味」といったのは、そういう意味(無理ではなく、意味がない、ということ)。 サーバーにモジュールで組み込まれているものは、クライアントからアクセスされた段階でスレッドとして起動する。で、その結果をクライアントに返した段階で処理は終了する。スレッドで起動されたプログラム内から別スレッドで何かの処理をしたとして、メインスレッドが結果をクライアントに返した段階でクライアントの要求は完了する。サーバー側で、それとは別に

    PHPでマルチスレッドプログラミングは可能ですか? - OKWAVE
  • 1