第一章のマルチスレッドと並行処理の基礎
質問の背後に同時:
1.3 手順、プロセスとスレッド
プログラムは静的な概念であり、Windowsが通常を指しexeファイルのファイルを。
コンセプトは動的なプロセスであり、プログラムの状態をメモリに、プロセス指示ボーダープログラムを実行しています。
スレッドは、プロセス内の基本的なタスクであり、各スレッドは、独自の機能を有するCPU 割り当ておよびスケジューリングの基本単位。
スレッドの三つの特徴:アトミック、可視性、整然とした
Javaのメモリモデル:JAVAメモリモデル
章Javaのマルチスレッド
2.1 作成マルチスレッド- 継承スレッドクラス
スレッドを作成するには、3つの方法:
継承スレッドクラスが実装Runnableをするためのインタフェースを使用呼び出し可能と未来スレッドを作成します
2.2 マルチスレッド作成- 実装のRunnable インタフェース
2.3 マルチスレッドの作成- 実装呼び出し可能インターフェースを
2.4Synchronized スレッド同期メカニズム
2.5 スレッド5つの状態
新しい準備ができてランニングはブロックされた死を
2.6 デッドロック生成
公共資源の場合は、マルチスレッド操作、相互参照を形成するために、他のスレッドからリソースを離れて操作しようと、彼自身のリソースに開放しないように、デッドロックが生成されます。
パブリックリソース参照を最小限に抑え、すぐに解放切れ;
2.7 スレッドセーフの新しい理解スレッドセーフ
第III章JDKの並行処理ユーティリティパッケージJUC
3.1java 同時接続プーリングツールキット
執行
1.CachedThreadPool スレッドプールをキャッシュすることが
インフィニティ使用可能なスレッドプールのスレッドが作成されていないがある場合は、空きスレッドがあるが、最大使用されています
2.FixedThreadPool 固定長スレッドプール
固定されたスレッドの合計数、スレッドプール内のスレッドのリリース後、待機状態にフォローアップを使用している場合、空間のタスクを実行するために使用される糸、その後のタスクを実行します。
タスクは、代替アルゴリズムを待って、待ち状態であるならばLIFO LIFO
3.SingleThreadExcecutor シングルスレッド・プール
4.ScheduledTreadPool スケジューリングスレッドプール
スレッドプールの利点:
オブジェクトの終焉のオーバーヘッドを削減、既存のスレッドを再利用
スレッドは常に制御可能である、リソースの使用率を向上させます
リソースのための過当競争を避けるため、ブロックを避けます
追加機能、実行のタイミング、定期的な実行、モニタリング、などを提供
3.2JUC のたCountDownLatchのカウントダウンロック
タスクの合計スコア。
3.3JUC セマフォセマフォ
Semaphore.acquire()semaphore.release()
3.4JUC のCyclicBarrierをの循環障壁
3.5JUC のReetrantLookの再入可能ロック
いずれかのスレッドがロックを取得する後、再びロックを取得するとロックがブロックされないであろう。
3.6JUC の条件スレッド待ちとウェイク
コアな方法:
()待つまでのブロック、現在のスレッドを信号ウェイク
信号()ウェイクアップのawaitのそれが中断したところから継続してスレッドを
signalAll()は、すべてが目を覚ます)(待つスレッドをブロック
3.7JUC 之Callable_Future
呼び出し可能な値を返し、例外をスローすることができます
将来は、非同期計算の結果を表すために使用されるインターフェースです。これは、計算の完了を待つ、と計算の結果を得るために、計算が完了したかどうかを確認する方法を提供します。
3.8JUC コンテナを同期
3.9JUC之Atomic与CAS算法
原子性:是指一个操作或者多个操作要么全部执行,且执行过程中不会被任何因素打断,要么都不执行。
3.10课程总结