1. ホーム
  2. java

[解決済み] java ですべてのスレッドが作業を終えるまで待つ

2022-02-10 17:11:12

質問

私は、同時にウェブからいくつかの情報を取得し、バッファクラスの5つの異なるフィールドを埋める5スレッドを持っているアプリケーションを書いています。
すべてのスレッドが作業を終えたら、バッファのデータを検証し、データベースに格納する必要があります。
どのようにすればよいですか(すべてのスレッドが作業を終了したときにアラートを受け取る)?

解決方法は?

私が取っている方法は エグゼキューターサービス を使用して、スレッドのプールを管理します。

ExecutorService es = Executors.newCachedThreadPool();
for(int i=0;i<5;i++)
    es.execute(new Runnable() { /*  your task */ });
es.shutdown();
boolean finished = es.awaitTermination(1, TimeUnit.MINUTES);
// all tasks have finished or the time has been reached.