タグ

関連タグで絞り込む (1)

タグの絞り込みを解除

threadに関するPinkのブックマーク (2)

  • @blog should be nil: Thread-Local Storage in Ruby

    2012年1月20日金曜日 Thread-Local Storage in Ruby スレッド毎に局所的に固有のデータ領域を与える方法としてスレッド局所領域というものがある。http://ja.wikipedia.org/wiki/%E3%82%B9%E3%83%AC%E3%83%83%E3%83%89%E5%B1%80%E6%89%80%E8%A8%98%E6%86%B6まあおおまかなメリットはwikipediaなんかを参考にしていただきたいのだが、記憶領域としてはメモリよりL1/L2キャッシュのほうがはやいし、レジスタはさらにはやい。なので複数スレッド間で共有する必要がない資源はL1/L2キャッシュにのってくれたほうがいいよね、という話だ(多分)。Rubyのスレッドは1.9からOSのネイティブスレッドと1:1対応になったので、POSIXスレッドとかの実装と対応、といったことが可能なわけ

  • 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の日記
    Pink
    Pink 2009/01/18
    スレッドをプールするクラス
  • 1