РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
1058 of 1163 menu

Метод isShutdown

Метод isShutdown проверяет, был ли данный исполнитель (ExecutorService) остановлен. Метод возвращает true, если исполнитель уже был переведен в состояние завершения с помощью методов shutdown или shutdownNow. Если исполнитель еще работает и не был остановлен, возвращается false. Параметров метод не принимает.

Важно понимать разницу между методами isShutdown и isTerminated. Первый возвращает true сразу после вызова shutdown или shutdownNow, даже если задачи еще выполняются. Второй возвращает true только тогда, когда все задачи завершены после остановки.

Синтаксис

executor.isShutdown()

Пример

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

import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; public class Main { public static void main(String[] args) { ExecutorService executor = Executors.newSingleThreadExecutor(); System.out.println(executor.isShutdown()); executor.shutdown(); } }

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

false

Пример

Теперь давайте проверим состояние после вызова метода shutdown:

import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; public class Main { public static void main(String[] args) { ExecutorService executor = Executors.newSingleThreadExecutor(); executor.shutdown(); System.out.println(executor.isShutdown()); } }

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

true

Пример

Давайте также проверим состояние после вызова метода shutdownNow:

import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; public class Main { public static void main(String[] args) { ExecutorService executor = Executors.newSingleThreadExecutor(); executor.shutdownNow(); System.out.println(executor.isShutdown()); } }

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

true

Пример

Давайте рассмотрим случай, когда исполнитель не был остановлен, но задачи уже завершены:

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.execute(() -> System.out.println("task")); Thread.sleep(100); System.out.println(executor.isShutdown()); executor.shutdown(); } }

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

task false

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

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