1

サイズ 3 のカウントダウン ラッチがあるとします。つまり、3 つのスレッドが親スレッドから生成されます。

CountDownLatch latch = new CountDownLatch(3);

latch.await().

これで、それぞれのタスクの完了後に countDown を呼び出す 3 つのスレッドができます。

// do something
 latch.countDown();

私の質問は、タスクが完了した瞬間に、そのタスクを実行していたスレッドの動作がどうなるかということです。

そのスレッドはその瞬間に終了しますか、それともアイドル状態に入ってしばらく待ちますか。?

カウントダウンラッチのJavaドキュメントのどこにでもあります。

4

2 に答える 2

1

N 個の従属スレッドがマスター スレッドにシグナルを送るという典型的な例に集中しすぎています。

これは、一部の外部エージェントがラッチを 0 にカウントダウンするCountDownLatchまでコードをブロックできるようにする単なるクラスです。

これらのエージェントは、例のように N 個の異なるスレッドにすることも、複数回カウントダウンする単一のスレッドにすることもできます。したがって、これらのエージェントをスレッドとして表示するのをやめるべきです。ラッチは彼らを知らず、完了する代わりにカウントダウン後にパブでビールを飲みに行くかどうかは気にしません. これはスレッド マネージャーではなく、スレッドのライフサイクルを監視しません。

于 2015-06-19T15:48:58.573 に答える