すべてのlatch.countdown()が呼び出されても、プログラムは実行を続けます

パテ

私はこの単純なスキーマを持っています:

int parallelism = 4; //4 tasks
ExecutorService executor = Executors.newCachedThreadPool();
CountDownLatch latch = new CountDownLatch(parallelism);

for(int i=0;i<parallelism;i++){
   executor.execute(new MyTask());
}

latch.await();
System.out.println("done");

タスクが呼び出す場所

public void run(){
      System.out.println("working");
      latch.countDown();
}

実行は私に与えますが:

working
working
working
working
done

プログラム全体が実行され続けます!どうして?

OldCurmudgeon

をシャットダウンする必要がありますExecutor

    ExecutorService executor = Executors.newCachedThreadPool();
    // ...
    executor.shutdown();
    while ( executor.awaitTermination(1, TimeUnit.SECONDS)) {
        System.out.println("This is taking too long.");
    }

すべてのランナブルが完了していExecutorても、スレッドはプールに保持されます。これらはあなたの出口を妨げているものです。mainすべての非デーモンスレッドが完了するまで、スレッドが終了しません。

別の方法として、JavaExecutorServiceをデーモンに変換Executorする(デーモンスレッドを使用する)も参照してください

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

呼び出されたプログラムが例外をスローした場合、Windowsタスクは実行を続けますか?

分類Dev

rootとして実行されているCプログラムがsystem(someprog)を呼び出して別のバイナリを実行する場合、そのプログラムもrootとして実行されますか?

分類Dev

例外がキャッチされましたが、プログラムは実行を続けています

分類Dev

'task.IsCompleted'内で呼び出されたUnity関数はプログラムの続行を停止します

分類Dev

関数が原因で実行を停止するCプログラムが呼び出されますか?

分類Dev

clearIntervalが呼び出された後も、setIntervalは実行を継続します

分類Dev

clearTimeoutが呼び出された後も、setTimeoutは実行を継続します

分類Dev

Javaプログラムは、actionPerformedのすべての行が実行される前に停止しています

分類Dev

このプログラム内で想定されているように関数呼び出しが実行されないのはなぜですか?

分類Dev

repaint()が呼び出されても、このプログラムがアプレットの特定の部分を再描画しないのはなぜですか

分類Dev

コードが実行されていない場合、プログラムはループから飛び出し、別のコマンドを待ちます

分類Dev

crontabによって呼び出されたシェルによって呼び出されたプログラムを実行すると、コード127が返されます。

分類Dev

呼び出されたプログラムは、呼び出し側プログラムで変数を記述または定義していますか?

分類Dev

リンカーは、参照されているが実際にはプログラムで呼び出されていない関数の再配置を行いますか?

分類Dev

プログラムの実行時にどの「sin」関数が呼び出されるかを知る方法は?

分類Dev

-Xlint:uncheckedを使用してコードを再コンパイルします。-Xlintを使用して再コンパイルすると、チェックされていない呼び出しの警告が表示されます。今すぐプログラムを実行するにはどうすればよいですか?

分類Dev

C#プログラムによって呼び出されるCobolプログラムでCobolまたはC関数を呼び出す

分類Dev

GC.Collect()を呼び出すと、ガベージコレクションはプロセスのみで実行されますか、それともすべてのプロセスで実行されますか?

分類Dev

GUIを呼び出すメインプログラムは、GUIが終了する前に実行を継続します

分類Dev

node.jsスクリプト内でwineを介して実行するために呼び出されたプログラムがフリーズする

分類Dev

プログラムの実行中もbashを使い続けてください

分類Dev

プログラムの実行中もbashを使い続けてください

分類Dev

サブプロセスを使用してシェルスクリプトを呼び出すと、シェルスクリプトのすべてのコマンドが実行されるわけではありません

分類Dev

cronは、Pythonプログラムを実行するために「script」を呼び出すbashスクリプトを呼び出します。スクリプト/ Pythonが完了する前に、bashスクリプトの次の行がすぐに実行されます

分類Dev

cronは、Pythonプログラムを実行するために「script」を呼び出すbashスクリプトを呼び出します。スクリプト/ Pythonが完了する前に、bashスクリプトの次の行がすぐに実行されます

分類Dev

google-colaboratoryで接続が失われた後も、プログラムは実行を継続しますか?

分類Dev

ループの問題?プログラムは正常に実行されますが、テストは失敗し続けます。TMCbeansを使用するJava

分類Dev

Python Tkinterがクラッシュし、プログラム以外のすべての実行が続行されますか?Tkinterの最終研磨

分類Dev

デストラクタが2回呼び出されてもプログラムがクラッシュしないのはなぜですか

Related 関連記事

  1. 1

    呼び出されたプログラムが例外をスローした場合、Windowsタスクは実行を続けますか?

  2. 2

    rootとして実行されているCプログラムがsystem(someprog)を呼び出して別のバイナリを実行する場合、そのプログラムもrootとして実行されますか?

  3. 3

    例外がキャッチされましたが、プログラムは実行を続けています

  4. 4

    'task.IsCompleted'内で呼び出されたUnity関数はプログラムの続行を停止します

  5. 5

    関数が原因で実行を停止するCプログラムが呼び出されますか?

  6. 6

    clearIntervalが呼び出された後も、setIntervalは実行を継続します

  7. 7

    clearTimeoutが呼び出された後も、setTimeoutは実行を継続します

  8. 8

    Javaプログラムは、actionPerformedのすべての行が実行される前に停止しています

  9. 9

    このプログラム内で想定されているように関数呼び出しが実行されないのはなぜですか?

  10. 10

    repaint()が呼び出されても、このプログラムがアプレットの特定の部分を再描画しないのはなぜですか

  11. 11

    コードが実行されていない場合、プログラムはループから飛び出し、別のコマンドを待ちます

  12. 12

    crontabによって呼び出されたシェルによって呼び出されたプログラムを実行すると、コード127が返されます。

  13. 13

    呼び出されたプログラムは、呼び出し側プログラムで変数を記述または定義していますか?

  14. 14

    リンカーは、参照されているが実際にはプログラムで呼び出されていない関数の再配置を行いますか?

  15. 15

    プログラムの実行時にどの「sin」関数が呼び出されるかを知る方法は?

  16. 16

    -Xlint:uncheckedを使用してコードを再コンパイルします。-Xlintを使用して再コンパイルすると、チェックされていない呼び出しの警告が表示されます。今すぐプログラムを実行するにはどうすればよいですか?

  17. 17

    C#プログラムによって呼び出されるCobolプログラムでCobolまたはC関数を呼び出す

  18. 18

    GC.Collect()を呼び出すと、ガベージコレクションはプロセスのみで実行されますか、それともすべてのプロセスで実行されますか?

  19. 19

    GUIを呼び出すメインプログラムは、GUIが終了する前に実行を継続します

  20. 20

    node.jsスクリプト内でwineを介して実行するために呼び出されたプログラムがフリーズする

  21. 21

    プログラムの実行中もbashを使い続けてください

  22. 22

    プログラムの実行中もbashを使い続けてください

  23. 23

    サブプロセスを使用してシェルスクリプトを呼び出すと、シェルスクリプトのすべてのコマンドが実行されるわけではありません

  24. 24

    cronは、Pythonプログラムを実行するために「script」を呼び出すbashスクリプトを呼び出します。スクリプト/ Pythonが完了する前に、bashスクリプトの次の行がすぐに実行されます

  25. 25

    cronは、Pythonプログラムを実行するために「script」を呼び出すbashスクリプトを呼び出します。スクリプト/ Pythonが完了する前に、bashスクリプトの次の行がすぐに実行されます

  26. 26

    google-colaboratoryで接続が失われた後も、プログラムは実行を継続しますか?

  27. 27

    ループの問題?プログラムは正常に実行されますが、テストは失敗し続けます。TMCbeansを使用するJava

  28. 28

    Python Tkinterがクラッシュし、プログラム以外のすべての実行が続行されますか?Tkinterの最終研磨

  29. 29

    デストラクタが2回呼び出されてもプログラムがクラッシュしないのはなぜですか

ホットタグ

アーカイブ