基本的な考え方
-
関係のCPUコアとスレッドの数:コア数:スレッド数= 1:1、ハイパー・スレッディング・テクノロジ1の使用:2
-
CPUラウンドロビンメカニズム:また、RRスケジューリングとして知られ、原因のコンテキストスイッチ
-
プロセスとスレッド:
プロセス:リソース割り当てを実行する最小単位、内部プロセスは、複数のスレッドが処理リソースを共有有します
スレッド:CPUスケジューリングの最小単位は、我々は、プロセスが存在に依存しなければなりません
-
パラレルと同時
パラレル:同じ時間は、あなたが同時に能力で物事に対処することができます
同時実行:単位時間に関係は、時間の単位あたりの我々は物事の能力に対処することができます
高並行プログラミングや注意事項の利点
-
長所:CPUのリソースをフルに活用、ユーザーの応答時間を早める、モジュラープログラム、非同期
-
注:スレッド共有リソース、競合があり、簡単にデッドロックにつながる。有効にあまりにも多くのスレッドを、簡単な機械を下に着用します
Javaでのスレッド
私たちは確信していますが、すべてのフレーズを聞いた:「Javaは本質的にマルチスレッドをサポートしている」を!!!ここでは、中にJavaスレッドを紹介します
- 3つの方法でJavaスレッドの作成は、ここにひとつずつ導入されていません
- どのように私は、セキュリティのJavaスレッドが動作を停止することができますか?ストップ(メソッドが推奨されていない、サスペンド))(一時停止、天然または実行スロー未処理の例外停止()、履歴書()()(一時停止、スレッドは適切なリソースを解放しない原因となる)簡単に死に至る:自然の終了スレッドロック。
- Javaスレッドが協調的ではなく、先制です:コールは、スレッドを中断するためのスレッド()メソッドをinterupted、スレッドはこのスレッドの知識をもって、閉鎖を余儀なくされていないと挨拶、割り込みフラグは、スレッドがtrueの場合は、スレッドが設定されています割り込まれたスレッド自体が決定しました。
- isInterruptedを()メソッドの役割:壊れた状態で、現在のスレッドかどうかを決定します。
- スレッドが偽に割り込みステータス割り込みビットである場合に静的メソッドが中断()を決定します。
- メソッドが例外:InterruptedExceptionをスローした場合、実際には呼び出しは()内のcatchブロックで再び自分自身を中断する必要、中断したスレッドにする必要がある場合は、割り込みスレッドフラグは、falseにリセットされます。
スレッドの状態と一般的な方法のスレッド
-
状態にある唯一の5スレッドは、状態のこれらのタイプのライフサイクル全体を切り替えることです。
-
ラン()、スタート():runメソッドは、通常、オブジェクトの一般的な方法は、開始にのみバー後()、Javaが再び実行()メソッドを実行し、スレッドオブジェクトと実際のオペレーティングシステムスレッドマッピングであろう。
-
()メソッドをもたらす:CPUの実行、実行可能に実行されているから、スレッドが、次のタイムスライスをしてみましょう、スレッドがまだ可能性を再度実行するように選択されます。
-
スレッドの優先順位:デフォルト値は5である1〜10の範囲、ねじ切り開発時間の手段として、信頼性のないシングルスレッドの優先順位が推奨されていません。
-
デーモンスレッド:メインスレッドと生と死の合計は、最終的には実行を保証することはできません。
スレッド間で共有
- 内蔵同期ロック:オブジェクトをロックし、ロックオブジェクトのインスタンスは、疲れている、クラスロック、各ロックは、クラス・オブジェクトの疲れて、各クラスのクラスオブジェクトは、いずれかのように唯一のクラスロックのみ仮想マシンです。
- volatileキーワード:それだけで視認性を確保することができるので、書き込みに一つだけのスレッドのために適しているのは、複数のスレッドのシナリオを読んで。
- ThreadLoacl:スレッド変数は、あなたがマップを理解することができ、地図入力し、<、スレッドを整数>
- スレッド間のコラボレーション:ポーリング、タイムリーな、大規模なリソースのオーバーヘッドを確保することは困難です。
- 待ちと通知:メソッド()、オブジェクト待機
- 、オブジェクト上のnotifyAllメソッドを通知します
- 待機と通知の標準パラダイム:
- 待機側:取得したオブジェクトのロック; Bループ条件が満たされていないが満たさコール待機()メソッドを判断し、Cを満たす呼サービスロジック実行...
- 通知パーティー:取得したオブジェクトのロック、変更条件B、Cのすべての待機中のスレッドオブジェクトを通知し....