0

N エントリの大きなファイルを受信して​​います。エントリごとに、新しいスレッドを作成しています。N 個のスレッドがすべて終了するのを待つ必要があります。

当初は Phaser を使用していましたが、その実装は 65K パーティーに制限されています。N は 100K のようになる可能性があるため、爆発しています。

次に、CountDownLatch を試してみました。これはうまく機能し、非常に単純な概念と非常に単純な実装です。しかし、Nの数がわかりません。

フェイザーは私のソリューションですが、その制限があります。

何か案は?

この投稿は関連しています: Flexible CountDownLatch?

4

3 に答える 3

0

AtomicInteger を使用すると、同じことを簡単に実現できます。1 で初期化し、新しいスレッドごとにインクリメントします。ワーカーとプロデューサーの両方で完了したら、デクリメントして取得します。ゼロの場合、最後の Runnable を実行します。

于 2015-10-28T20:26:59.257 に答える