同時utilのJavaの

第一章のマルチスレッドと並行処理の基礎

質問の背後に同時:

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.9JUCAtomicCAS算法

原子性:是指一个操作或者多个操作要么全部执行,且执行过程中不会被任何因素打断,要么都不执行。

3.10课程总结

おすすめ

転載: www.cnblogs.com/zszitman/p/11111703.html