Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
1068 of 1172 menu
◀ ▶

Метод isTerminated

Метод isTerminated проверяет, завершился ли пул потоков ExecutorService. Метод возвращает true, если после вызова shutdown или shutdownNow все задачи завершили выполнение. Если пул еще работает или задачи остались в очереди, метод вернет false. Параметров метод не принимает.

Важно понимать: метод не останавливает пул и не ждет завершения задач. Он лишь сообщает текущее состояние. Чтобы дождаться завершения, используйте awaitTermination.

Синтаксис

executorService.isTerminated()

Пример

Давайте создадим пул из одного потока, отправим задачу и проверим состояние до и после остановки:

import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; public class Main { public static void main(String[] args) throws InterruptedException { ExecutorService executor = Executors.newSingleThreadExecutor(); executor.submit(() -> { System.out.println("Task is running"); }); System.out.println("Before shutdown: " + executor.isTerminated()); executor.shutdown(); while (!executor.isTerminated()) { Thread.sleep(10); } System.out.println("After shutdown: " + executor.isTerminated()); } }

Результат выполнения кода:

"Task is running" "Before shutdown: false" "After shutdown: true"

Пример

Давайте проверим состояние пула сразу после shutdownNow, не дожидаясь завершения задач:

import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; public class Main { public static void main(String[] args) throws InterruptedException { ExecutorService executor = Executors.newFixedThreadPool(2); executor.submit(() -> { try { Thread.sleep(500); } catch (InterruptedException e) { System.out.println("Task interrupted"); } }); executor.shutdownNow(); System.out.println("Right after shutdownNow: " + executor.isTerminated()); while (!executor.isTerminated()) { Thread.sleep(10); } System.out.println("Finally terminated: " + executor.isTerminated()); } }

Результат выполнения кода:

"Task interrupted" "Right after shutdownNow: false" "Finally terminated: true"

Смотрите также

  • метод awaitTermination,
    который ожидает завершения всех задач
  • метод shutdown,
    который запускает плавную остановку пула
  • метод shutdownNow,
    который немедленно останавливает пул
  • метод isShutdown,
    который проверяет, был ли вызван shutdown
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить