レビュー:Java 7並行Cookbook
私のお気に入りは第3章で、 ”
Semaphores
“、 ”
CountDownLatch
“、 ”
CyclicBarrier
“、 ”
Phaser
“、 ”
Exchanger
“といった共通の並行メカニズムやパターンの5つの例と、これらのメカニズムが既存のスレッド問題をどのように解決するかを示しています。さらに、この章の最後では、EclipseとNetBeanの両方でJavaの同時コードをテストする方法を示しています。
この本から何を学ぶのかを知るには、次のセクションを参照してください。
第1章:スレッド管理
こんにちは世界の章では、スレッド管理の基本を示す多くの有用な例があります。
スキルを学ぶ:
-
スレッドを作成、中断、スリープ、再開する方法.
-
デーモンスレッドをプログラミングする方法.
-
スレッド例外を処理する方法.
-
グループにスレッドをグループ化する方法.
第2章:基本的なスレッド同期
複数のスレッドが同じデータ、ファイルまたはデータベース(共有リソース)を読み書きする方法を制御するスレッド同期。
スキルを学ぶ:
-
`synchronized`キーワードを使ってメソッドを同期させる方法.
-
`Lock`インターフェースとその実装を使う方法
コードブロックを同期させる。
-
同期コードでの単一/複数条件の使用方法
wait()
、
notify()
、 `notifyAll()`などがあります。
第3章:スレッド同期ユーティリティ
例は、複数のスレッドを同期させるための5つの共通の並行メカニズムまたはパターンを示し、どの問題を解決しているかを示します。
スキルを学ぶ:
-
Semaphores
– A
1つ以上の共有リソースへのアクセスを制御するカウンタ。
共通ポイント内の複数のスレッドの同期を可能にします。
第4章:スレッド実行プログラム
Java 5、Executorフレームワーク –
Executor
、` ThreadPoolExecutor`などで動作する方法スケジューラのように、指定された時間または間隔で1つまたは複数のスレッドを実行します。
スキルを学ぶ:
-
スレッドエグゼキュータを作成する方法
-
遅延後にタスクを実行する方法.
-
タスクを定期的に実行する方法.
-
タスクの仕上げやキャンセルを制御する方法.
第5章:Fork/Joinフレームワーク
新しいhttp://docs.oracle.com/javase/tutorial/essential/concurrency/forkjoin.html[Java 7フォーク/結合フレームワーク]
スキルを学ぶ:
-
Java 7 Fork/Join Frameworkとは何ですか、そして単純なhello worldの例です.
-
分割されたタスクの結果を結合する方法.
-
タスクを取り消す方法.
第6章:コンカレントコレクション
並行プログラミングで使用されたJavaコレクションを紹介してください。
スキルを学ぶ:
-
ブロッキングと非ブロッキングコレクションとは何ですか?
-
ブロッキングと非ブロッキングスレッドセーフリストを使用する例
-
`ConcurrentNavigableMap`の例です.
-
`ThreadLocalRandom`で同時乱数を生成する方法
-
原子変数の使い方 – 例えばAtomicLongと原子配列 –
例えばAtomicIntegerArray。
第7章:並行性クラスのカスタマイズ
この章では、必要に応じて既存の並行処理クラスをカスタマイズする方法を示します。しばしば、あなたはこれを必要としませんが、知っておくと良いです。
スキルを学ぶ:
-
優先順位に基づいた `Executor`クラスの実装
-
`ThreadFactory`の使い方
-
スケジュールされたスレッドプールおよびフォーク/
フレームワークに参加する。
-
カスタム `Lock`クラスを実装する方法.
-
独自のアトミックオブジェクトを実装する方法.
第8章:並行アプリケーションのテスト
この章では、並行プログラムでテストする方法を説明します。
スキルを学ぶ:
-
Lock
、` Phaser`、 `Executor`フレームワーク、そしてFork/Joinを監視する方法
プール。
-
並行処理コードをデバッグするためのEclipseとNetBeansの設定方法
-
並行コードをどのように解析するか
結論
この本はたくさんの簡単な例を含み、6年と7章を除いて、各例の最後によく説明されています。 Javaでスレッディングを学びたい初心者にとっては、この “http://www.amazon.com/gp/product/1849687889/ref=as
li
tf__tl?ie=UTF8
従来のhttp://www.amazon.com/gp/product/0321349601/ref=as
li
tf__tl?ie=UTF8と比較するとどうなりますか
-
注** このJava 7並行性Cookbookは、http://www.amazon.com/gp/product/0321349601/ref=as
li
tf__tl?ie=UTF8からオンラインで購入することができます。
参考文献
Javaの同時実行チュートリアル]。
http://docs.oracle.com/javase/tutorial/essential/concurrency/forkjoin.html
[Java
7つのフォーク/結合フレームワーク]