タグ

green-threadsとthreadに関するnabinnoのブックマーク (6)

  • Route 477(2007-06-20)

    ■ [ruby][event] Ruby勉強会@関西-16「30分でわかるcallccの使い方」 先週末のRuby勉強会@関西で、Rubyにおけるcallccの使い方について発表させていただきました。 スライド: pdf ppt 継続の説明については「なんでも継続」がよく参照されるんだけど、 ちょっと説明がボトムアップすぎると思うので(僕も最初に読んだときは全然分からなかった)、「callccで何ができるか」という応用面から攻める 構成にしてみました。 最初は「継続かわいいよ継続」「それをすてるなんてとんでもない」と思ってたんだけど、 いろいろ調べてるうちになんでcallccが嫌われるのかが理解できてしまった。callccはかわいいけど、非常に手のかかる奴らしい。 しかも、面白い利用例はいっぱいあるけど実用的な例があんまりないんだよね^^;。 callccが無くなるとRubyの「かっこよさ

    Route 477(2007-06-20)
  • RubyのThreadとFiberの違い: ThreadとFiberの違い, 今、西尾泰和『コーディングを支える技術』を読んでいて、, 第10章「並行処理」にこんなことが書いてあって、そのことを思い出した。, , , ちょ��

    [Ruby] ThreadとFiberの違い前、#shibuyarblunchっていう、渋谷に縁のあるRubyistが集まってお昼をご一緒しましょう、というので、ThreadとFiberの違いが話題になった。 確か刺身さんだったと思うんだけど、Fiberを使えるような時には、Threadも使えるんではないか、Fiberを使うシーンが想像できない、といったことを言っていたように思う。それで、僕はその時、「そうですね」と言って、Fiberが存在する意義を分かっていなかった。今、西尾泰和『コーディングを支える技術』を読んでいて、コーディングを支える技術 ~成り立ちから学ぶプログラミング作法 (WEB+DB PRESS plus)西尾泰和技術評論社発売日:2013-04-24ブクログでレビューを見る» 第10章「並行処理」にこんなことが書いてあって、そのことを思い出した。スレッドを使った時に競合状

  • ファイバー (コンピュータ) - Wikipedia

    ファイバー(英: fiber)は、計算機科学の分野において、非常に軽量な実行スレッドを示す。 ファイバー同士はスレッドと同じくアドレス空間を共有するが、ファイバーが協調マルチタスクを使用するのに対し、スレッドはプリエンプティブマルチタスクを用いる。スレッドでは、ビジーなスレッドに割り込み他のスレッドを復帰させるためにカーネルのスレッドスケジューラを用いることが多いが、ファイバーは他のスレッドを実行させるために自ら制御を譲る。 ファイバーはコルーチンと質的には同じ概念である。違いは、もしあるとすればコルーチンが言語レベルの構造で、制御の流れの形態の一つであるのに対し、ファイバーはシステムレベルの構造であり、並行に動作しないスレッドと捉えられる点である。どちらに近いか異論はあろうが、ファイバーはコルーチンの実装か[1]、あるいは、コルーチンを実装するための基盤と捉えることができるかもしれない

  • マルチタスク - Wikipedia

    この項目では、コンピュータのマルチタスクについて説明しています。人間のマルチタスクについては「マルチタスク (心理学)」をご覧ください。 この記事は検証可能な参考文献や出典が全く示されていないか、不十分です。出典を追加して記事の信頼性向上にご協力ください。(このテンプレートの使い方) 出典検索?: "マルチタスク" – ニュース · 書籍 · スカラー · CiNii · J-STAGE · NDL · dlib.jp · ジャパンサーチ · TWL(2023年1月) マルチタスク (英: multi tasking) は、コンピュータにおいて複数のタスク(プロセス)を切り替えて実行できるシステムのことである。Unixなど「プロセス」という用語を使うシステムではマルチプロセスともいう(ほぼ同じものを別のシステムでは別の名で呼んでいることもあれば、違うものを同じ名で呼んでいることもあれば、何

  • 並行計算 - Wikipedia

    並行計算(へいこうけいさん、英: Concurrent computing)とは、複数の計算あるいはアルゴリズムを、同一期間に同時実行させつつ相互に同調(コンカレント)させて、次の期間開始までに互いに完遂させるという計算形態を意味している。非同期なメッセージパッシングではその完遂の抽象化も可能になる。対義語は順次計算(シーケンシャル)である。並行コンピューティングとも邦訳される。並行プログラミング(Concurrent programming)とも言われる。 並行計算は、コンピュータプログラムやコンピュータネットワークの重要な特性であり、各プロセスの各スレッド制御などがその要点になる[1]。並行計算下の各スレッドは、一定の制約内で他のスレッドの完了を待つことなく同時にそれぞれ進行できる。非同期では他のスレッドの応答も一定の制約内で待たなくてよくなる。エドガー・ダイクストラやアントニー・ホー

    並行計算 - Wikipedia
  • グリーンスレッド - Wikipedia

    グリーンスレッド(英: green threads)とは、コンピュータプログラミングにおいて、オペレーティングシステムではなく、ランタイムライブラリや仮想マシン (VM) によってスケジュールされるスレッドである。グリーンスレッドはネイティブのOSの機能に依存せずに並行性を実現するほか、カーネル空間ではなくユーザー空間で管理されるためネイティブスレッドがサポートされていない環境でも動作しうる。 マルチコアプロセッサのシステムでは、ネイティブスレッドの実装は処理を複数のプロセッサに割り当てることができる。これはグリーンスレッドの実装では不可能である。このような環境ではネイティブスレッドに明らかな利点がある。しかし、ユニプロセッサのシステムでは、最も効率のよいモデルが何なのか、いまだ明確な答えはない[1]。 また、ネイティブスレッド(あるいはマルチプロセス処理)とグリーンスレッドを併用すること

  • 1