0

ExecutorService で送信されたすべてのタスクを停止したいのですが、それを行う方法が見つかりませんでした。助言がありますか ?

4

3 に答える 3

3

をご覧くださいExecutorService.shutdownNow

于 2012-06-03T14:36:13.937 に答える
1

たとえば、var プールは ExecutorService です。

//start a task 
pool.execute(task);

//
try {
    pool.shutdown();
    if(!pool.awaitTermination(awaitTime, TimeUnit.MILLISECONDS)){
        pool.shutdownNow();
    }
} catch (InterruptedException e) {
    pool.shutdownNow();
}
于 2012-06-03T14:42:40.157 に答える
0

サブミットされたタスクの決定論的シャットダウンはExecutorService、タスク自体が外部信号 (タスクを実行しているスレッドの割り込み、またはフラグを設計した他のアプリケーションなど) に応答するように設計されている場合にのみ可能です。それ自体は、これらのシグナルを発生させ( andメソッドを呼び出すとき)、実行中のすべてのタスクに通知するのExecutorServiceと同じくらい役立ちます。すべてのタスク (既に実行中で、まだ終了していないタスクを含む) をシャットダウンできるようにしたい場合は、これらのタスクにキャンセル ポリシーが設定されるように設計します。shutdown()shutdownNow()

于 2012-06-03T15:21:01.753 に答える