タグ

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

タグの絞り込みを解除

Rubyとスレッドに関するmapserver2007のブックマーク (2)

  • Rubyのスレッド周りの話 - Qiita

    Rubyのスレッド周りを追ってみた。 最も効率が良いスレッドモデルは結論出ないんじゃないかと(物理的な環境、何を実装するか、性能以外の面でメンテナの問題とか)。 Ruby1.8系 「グリーンスレッド」 Ruby1.8ではOSではなくて仮想マシン(VM)上で実装されたマルチスレッドシステムを採用した。 これを「グリーンスレッド」という。カーネルでスレッドがサポートされていなくても動作する。 つまり、OSに依存せずにマルチスレッドを実現する。 メリット スレッドの起動、並列化の性能 Linux のネイティブスレッドの性能を上回る。つまり、ネイティブスレッドより低コストで起動、並列化を行える。 起動については、独自のアドレス空間を確保する必要がなく、わずかな量の仮想メモリを取得するだけ。 並列化については、カーネルレベルとユーザレベルの切り替えが必要ないことなど。 さまざまなOS間で移植が楽 デ

    Rubyのスレッド周りの話 - Qiita
  • Ruby で複数スレッドの終了を待つために ThreadsWait を使う (複数スレッドのうちのどれかひとつの終了や全てのスレッドの終了) - ひだまりソケットは壊れない

    並列に実行して最初に返ってきた結果を得るやつ - hitode909の日記 Ruby において Thread の終了を待つための方法について。 id:hitode909 さんの上記ブログ記事を読んで、「そういや複数スレッドに対する join 処理をするための簡単な方法って何かありそうなもんだけど知らないなー」 と思って調べてみました。 単体の Thread オブジェクトに対しては Thread#join メソッド を使うわけですが、複数 Thread オブジェクトに対してどれかひとつが終了するのを待つとか、全部が終了するのを待つとかしたい場合には、標準添付ライブラリの ThreadsWait が使えるみたいです。 このクラスのドキュメントは以下 *1。 class ThreadsWait (日語) Class: ThreadsWait (Ruby 1.9.3) (英語) 私も全然知らなか

    Ruby で複数スレッドの終了を待つために ThreadsWait を使う (複数スレッドのうちのどれかひとつの終了や全てのスレッドの終了) - ひだまりソケットは壊れない
  • 1