初期の理論スレッド

まず、スレッドは何ですか

スレッドは:名前が示すように、組立ライン作業のプロセスがあり、パイプラインは、ワークショップに属している必要があり、作業工程のワークショップは、プロセスがあります

したがって、プロセスは、一緒に(プロセスだけリソースユニットまたはリソースのセット)リソースを集中するために使用され、ユニットスレッドの実装のCPUです。

 マルチスレッド(すなわち、コントロールの複数のスレッド)の概念は、プロセス内の制御の複数のスレッドは、複数のスレッドは、植物が共有されるリソースプラント内の複数のラインに対応する、プロセスのアドレス空間の制御を共有することです。複数のスレッドを開く工程(同じメモリ空間を共有するプロセス))

      例えば、北京地下鉄と上海地下鉄は、異なるプロセスであり、北京地下鉄ライン13は、スレッド、すべて北京の地下鉄路線が北京の地下鉄は、例えば、すべての乗客がすべての行を引っ張ることができるすべてのリソースを共有しています。

注意:

したがって1、実際の作業は、スレッド(スレッド内の処理)となっているプロセス

2.プロセスはただお互いにリソースを単離するために使用し、スレッドが彼のCPUを動員して、本当に責任があります

小さなスレッドを作成する第二に、コスト 

オーバーヘッドはスレッドよりもはるかに大きいプロセスを作成しますか?

当社のソフトウェアは、行数、組立ライン作業は電源を必要と工場、CPUのみ(シングルコアCPU)である電源の場合

ワークショップは、プロセス、ワークショップ少なくとも一つの組立ライン(プロセス少なくとも一つのスレッド)であります

プロセスを作成し、(少なくともこの空間に組立ラインを構築し、アプリケーション空間)のワークショップを作成することです

内蔵スレッド、小さなオーバーヘッドを作成するので、ちょうど、ワークショップではスペースのために適用する必要がパイプラインを構築していません

第三に、スレッドとプロセスの違い

1.プロセスのコストよりも小さなスレッドを作成します(スペース、およびプロセス内のスレッドを持っています開かれたプロセスを、スペースをオープンする必要はありません)
プロセスの内部に、内部共有のプロセスで開いている必要があります。2.マルチスレッドリソース
3.ファストスタート・スレッド
のプロセスのうち同一のプロセス・リソースとメモリ空間の下工程4.複数のスレッドで共有がから単離される
N- = 100
DEF(ワーク):
グローバルN-
N- = 100
開口場合単離された、しないn個のプロセスは、互いに独立しており、スレッドが共有リソースであります

WINSを開くプロセスでは、の親プロセスはコピーされません子供
Linuxでのオープンプロセスは、子が親プロセスの完全なコピーになります

スレッド内の前記スレッド間通信は、単に求めできる場所のプロセス

第四に、なぜマルチスレッドを使用します

マルチスレッドは、プロセス内で複数のスレッドを開くために指し、単に言う:複数のタスクは、アドレス空間を共有している場合は、プロセス内で複数のスレッドを開く必要があります。詳細は、4つのポイントに分け話すこと:

  1.プロセスのアドレス空間を共有するマルチスレッド

      2.、ダイナミックで急速な変化を必要とするプロセスは、多数のスレッドでは、10〜100倍高速であることをプロセスを作成するよりも、スレッドを作成し、多くのオペレーティングシステムでは、取り消すことができるよりも作成するプロセスの軽量スレッドよりも簡単にスレッドこの機能は便利です

      複数のスレッドがCPUを集中している場合3.ので、性能を向上させる上で得ることはありませんが、多数の計算とI / O処理が多数存在する場合は、複数のスレッドが実行を許可して、これらの活動はをスピードアップし、互いに重なり合いますプログラムの実行速度。

      マルチCPUシステム4.、マルチコアの使用を最大化するために、あなたは、プロセスへのオープンオーバーヘッドよりもはるかに小さい複数のスレッドを、開くことができます。(これは、Pythonには適用されません)

おすすめ

転載: www.cnblogs.com/s686zhou/p/11357170.html