まず、スレッドを理解します
1、スレッド:Linuxのスレッドは、シミュレーションプロセスのPCB、実行中の記述を制御するPCBを達成するための軽量なプロセスであり、これらのPCBと
従来の方法に比べので、より軽量、資源のほとんどで同じ仮想アドレス空間、共有プロセスを共有します。
2、排他的と共有スレッド
オペレーティング・システム・プロセスは、リソース割り当ての基本単位である:リソース割当システム稼働中のプログラムは、全体のプロセスのグループを与えることである後。
スレッドは、CPUスケジューリングの基本単位である:CPUスケジューリングPCBによって実装スケジューリングプログラム。
ユニーク:単語を遮蔽スタックスレッドの呼び出しの間の混乱を避けるために、各スレッドはそれ自身のスタック領域を有し、レジスタ、スレッドID、スケジューリング優先順位、errnoに、信号。
共有仮想アドレス空間(コード・セグメント - セグメントデータ)、ファイルディスクリプタテーブル、信号処理、ユーザIDとグループID、現在の作業ディレクトリ/ディレクトリ
3、スレッドの例外
ゼロ以外の単一のスレッドが存在する場合1>、野生ポインタの問題は、プロセスと共に崩壊につながる可能性が、糸の崩壊につながりました。
2>スレッドが分岐処理を実行しているスレッドが異常表示され、プロセスが異常であろう。
4、スレッドを使用しています
1>合理的な使用は、CPU集約型の手順の効率を向上させることができます。
2>合理的な使用は、I / O集中型の手続きにユーザーエクスペリエンスを向上させること。
図5に示すように、スレッドの利点
1>スレッドを作成するプロセスを作成するコストよりもはるかに少ないです。
比較スイッチ2>とはまれオペレーティングシステムのスレッドに切り替えるために必要なワークロードを処理します。
3>スレッドはプロセスより少ないリソースを消費します。
4>複数の利点を活用する並列プロセッサの数であってもよいです。
5>計算集約型アプリケーションを、マルチプロセッサ・システム上で実行するために、計算され、複数のスレッドに分解が実施されます。
6> I / Oを多用するアプリケーションのパフォーマンスを向上させるために、I / O操作が重なります。スレッドは異なるIO操作を待っている間にすることができます。
6、欠点のスレッド
1>パフォーマンスの低下を:それが作成のスレッドの数が多い、切り替えた場合、破壊は、追加の同期とスケジューリングのオーバーヘッドが増加します
そして、利用可能なリソースは同じなので、大きな性能の損失があるでしょう。
2>堅牢性が低い:スレッドとスレッド間の保護の欠如。
アクセス制御の3>不足:プロセスはスレッドで全体のプロセスに影響を与えるいくつかのOSの機能を呼び出すと、アクセス制御の基本的な細かさです。