EeBlog(テクニカルブログ)

第51回 シンクロナイザ編 CyclicBarrier

今回のテーマは「CyclicBarrier」です。

CyclicBarrierはスレッドセットのそれぞれが共通のバリアポイントに達するまで待機することを可能にする同期化支援機能です。 指定された数のスレッドがawaitメソッドを実行するまで待機させることができます。 CountDownLatchは繰り返し使用することができませんが、CyclicBarrierは待機中のスレッドが解放されたあとで再利用できます。

(さらに…)

第50回 シンクロナイザ編 CountDownLatch

今回のテーマは「CountDownLatch」です。

CountDownLatchは他のスレッドで実行中の操作セットが完了するまで、1 つ以上のスレッドを待機可能にする同期化支援機能です。 CountDownLatchは指定されたカウントを使用して初期化されます。 このカウントはcountDownメソッドの実行により減算し、カウントがゼロになるまでスレッドを待機させることができる仕組みになっています。

(さらに…)

第49回 マルチスレッド編 CompletionServiceインターフェース

今回のテーマは「CompletionService」です。

今回は複数の非同期処理の実行を考えてみます。 複数の非同期処理を実行した場合、その処理が完了する順番はわかりません。 Futureのgetメソッドは非同期処理の完了を待機するので、複数の非同期処理を実行した場合、遅い処理の完了を待機する可能性があります。 CompletionServiceインターフェースを実装するExecutorCompletionServiceは処理結果をキューに格納することで、完了した順に取得することができます。 このキューにはBlockingQueueが使用されます。

(さらに…)