タグ

threadに関するSixeightのブックマーク (4)

  • スレッドで読み込み - yarbの日記

    Rubyのスレッドは並列実行はサポートしていないので、CPUバウンドなボトルネックに対しては効果がないけど、IOバウンドなものに対しては有効だという話。Wikiquoteはネットワークが遅いので、やってみた。シンプルで分かりやすい。 #!/usr/local/bin/ruby require 'open-uri' require 'hpricot' require 'fileutils' QUOTE_FILE = File.expand_path("~/.quotes") class Wikiquote attr_accessor :q def initialize @q = [] end def show cache if @q.size == 0 puts @q.shift end def cache if @q.size <= 4 @q += get_quote(date) end

    スレッドで読み込み - yarbの日記
  • sleep関数とマルチスレッド - Tociyuki::Diary

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

    sleep関数とマルチスレッド - Tociyuki::Diary
  • Threadの話 - GIOの日記

    最近Rubyでクローラを書いた。 なかなか気合いの入った動きをみせ、一晩で3Gバイトものデータをダウンロードしてくる。 また、それに比例して処理も遅くなる為、Threadを使うことにした。 RubyでのThreadはグリーンスレッド、つまり1つのカーネルスレッドに対して複数のユーザースレッドが動作している為、並行的には動作できるが、並列には動かない。つまり速くならない。 しかしクローラのようにボトルネックがネットワークとディスクIOの場合、待ち時間に他の処理ができるのでそこそこ有用です。 問題としてRubyのThreadはとにかく遅い。コストが高すぎ。スイッチング遅すぎ。 来は (1..10000).map { |e| Thread.start { e**2 } }.map{ |th| th.value } みたいにThreadを使い捨てにしたい。楽だし。 でもリソースがもったいなさ過ぎ

    Threadの話 - GIOの日記
    Sixeight
    Sixeight 2008/12/19
    RubyのThreadは扱いが難しい。が、そこが良い。
  • ライブドアブログ|無料で豊富な機能が充実

    私に冗談で「 ブス& クソババァ」 等悪く言てた女性友人と買い物中→真面目そうなサラリーマン『ドブス!(友人に叫んだ)』→すると・・

    ライブドアブログ|無料で豊富な機能が充実
  • 1