2012-06-03 3 views

ответ

1

например, var pool - это служба-исполнитель.

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

// 
try { 
    pool.shutdown(); 
    if(!pool.awaitTermination(awaitTime, TimeUnit.MILLISECONDS)){ 
     pool.shutdownNow(); 
    } 
} catch (InterruptedException e) { 
    pool.shutdownNow(); 
} 
0

Детерминированная выключения для любой задачи, представленного ExecutorService возможно только тогда, когда сама задача предназначена для ответа на внешний сигнал (например, прерывание на нити, выполняющее задачу, или какой-либо другое приложение разработано флагом) , ExecutorService сам по себе помогает только в том, что он поднимет эти сигналы для вас (когда вы вызываете его методы shutdown() и shutdownNow()) и сообщите обо всех запущенных задачах. Если вы хотите завершить все задачи (включая те, которые уже запущены и еще не завершены), выполните эти задачи, чтобы иметь политику отмены.

Смежные вопросы