スレッドはなぜスレッドと呼ばれるのですか?


9

私は、プロセスがリソース所有権と実行可能命令の単位であることを理解しています。スレッドを使用すると、プロセスはリソースを複数の実行と共有できます。また、プロセス全体に関連するすべてのオーバーヘッドにより、OSがスレッドをスケジュールするのが簡単になります。

しかし、なぜ名前のスレッドなのか?文字列または実行のインターリーブへの参照はありますか?それでも、これは私の考えでは直感的な用語ではありません。

回答:


11

辞書を見たことがありますか?という言葉には過去の縫製という意味があります。

3:継続的または引き出されたもの:

a: パーツをシーケンスで接続する一連の推論または一連の思考(アイデアまたはイベントに関して)

http://www.merriam-webster.com/dictionary/thread


面白い。私は「スレッドを定義する」を検索しましたが、その定義はそれらの1つではありませんでした。これは、一般的な使用法からプログラミングまでの橋を渡るのに十分なほど抽象的であるので、あなたがこれを述べてうれしいです。
Matt

9

複数のスレッドがねじられて、太くて強いコードを形成する方法を見たことがありますか?

つまり、すべてのスレッドは独立していますが、すべてのスレッドが連携して最終的な計算結果を生成します。さらに、テキスタイルスレッドの場合と同様に、コード全体の構造を損なうことなくスレッドを切断できます。

ここに画像の説明を入力してください


2
私はいつも「糸」を描きましたが、あなたとGrandmasterBだけがそれらについて説明しましたが、「ねじれた、太くて強いコード」全体についてはわかりません。代わりに、ほとんどのこのようなOSのルック何か内のスレッド:miqel.com/bonnaroo_2008_music/yarn_string_trips.jpgうん、これらの文字列の数、いくつかの時間は、共通の問題を解決するためになされたものが、ほとんどがされている(右の男は、メモリコントローラになります)ちょうどそこにあり、OSは(理由の範囲内で)すべてのユーザーに必要なことを実行させる
DXM

7

tl; dr:「スレッド」はふさわしい比喩なので、それらはスレッドと呼ばれます。


スレッドを開始するときは、オペレーティングシステムに依存して処理時間を割り当て、スレッドを実行できるようにします。スレッドの実行中、プロセッサ(またはコア)はスレッドにすべての注意を向けます。オペレーティングシステムがコアを別のスレッドに切り替えると、他のスレッドが処理されている間、スレッドは実行を停止します。

そのため、実行はあちこちでジャンプします。ただし、これらのジャンプにもかかわらず、マシン命令のセットの整合性はそのまま残ります。これは、その状態と相互作用するオブジェクトの状態を保護するためにフェンスと同時実行メカニズムを構築するためです。

したがって、スレッドとは、特定のスレッドでの命令の実行ではなく、作成したスレッド内で最終的に実行される命令を指します。言い換えると、各スレッドは、オペレーティングシステムが実行しているすべてのコンテキストスイッチを考慮しなくても、個々のマシンまたはエージェント(軽量プロセスと呼ぶ)と考えることができます。同時に実行します。

つまり、OSがバックグラウンドで行うすべてのジャンプにもかかわらず、スレッド(軽量プロセスで実行している一連の操作)と呼ばれるものは、同じ操作のシーケンスと考えることができます。必要な同時実行性保護を採用していると想定して、スレッドを生成しなかった場合。


この説明が重すぎて抽象的すぎる場合は、Redditのようなフォーラムのスレッドを考えてください。新しいディスカッションから分岐できます。各ディスカッションは独自のスレッドです。スレッド間を行き来することができます。ただし、各スレッドは、個々の会話として構造的な整合性を維持します。


4

さまざまなものが水を濁らせているため、「スレッド」という用語の出所を解く(完全に意図したものにする)ことは困難です。

フォーラムやメールの意味でのスレッドの使用は、ほぼ確実によると、フレーズ「会話のスレッド」に由来し、この限り1593としてさかのぼります。

このリンクによると、スレッドは実際には「スレッド」と呼ばれていなかったため、共有メモリプロセスの実装にもかかわらず、70年代または80年代前半まではスレッドと呼ばれていなかったため、今日私たちがヘビーウェイトプロセスと考えるものを実際に捕らえています。関連する形式の共有メモリマルチプロセッシングが「ファイバー」と呼ばれていることを考えると、「スレッド」という単語は、織り布やその他の繊維関連の類推を連想させると思われます。


3

「推論の糸」や「思考の糸」と関係があると思います。

プロセスとは対照的に、スレッドはメモリを共有します。したがって、プロセスを自分の心(記憶)を持つ人に例えると、スレッドはその心の中の1行の考えに例えることができます。


1

プログラミングにおける糸の類推をどこかで読みました。CPUを縫い針、糸を実際の紐と考えてください。今、あなたが複数のミシン針を持っているが、1本の糸だけがある場合。あなたは思いませんか、それはかなり非効率になります。他のCPU /ミシン針は、スレッドが使用可能になるのを待っています。ただし、複数のスレッドがある場合、ジョブは短時間で実行できます。


1
どうしたの?なぜ-1?
器用な2014年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.