РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
1059 of 1163 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 для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить