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

Метод execute

Метод execute класса ExecutorService принимает задачу и запускает её на выполнение в одном из потоков пула. В отличие от метода submit, метод execute не возвращает объект Future, поэтому узнать результат выполнения или дождаться его завершения через этот метод нельзя. В параметр метода мы передаём объект, реализующий интерфейс Runnable. Метод ничего не возвращает.

Синтаксис

executor.execute(command)

Пример

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

import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; public class Main { public static void main(String[] args) { ExecutorService executor = Executors.newSingleThreadExecutor(); executor.execute(() -> { System.out.println("task is running"); }); executor.shutdown(); } }

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

"task is running"

Пример

Давайте создадим пул из двух потоков и запустим в нём несколько задач. Каждая задача выведет своё имя:

import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; public class Main { public static void main(String[] args) { ExecutorService executor = Executors.newFixedThreadPool(2); executor.execute(() -> { System.out.println("task 1"); }); executor.execute(() -> { System.out.println("task 2"); }); executor.execute(() -> { System.out.println("task 3"); }); executor.shutdown(); } }

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

"task 1" "task 2" "task 3"

Пример

Давайте передадим в метод execute задачу, созданную через именованный класс, реализующий интерфейс Runnable:

import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; public class Main { public static void main(String[] args) { ExecutorService executor = Executors.newSingleThreadExecutor(); executor.execute(new MyTask()); executor.shutdown(); } } class MyTask implements Runnable { @Override public void run() { System.out.println("custom task is running"); } }

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

"custom task is running"

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

  • метод submit,
    который запускает задачу и возвращает Future
  • метод shutdown,
    который завершает работу пула потоков
  • метод awaitTermination,
    который ожидает завершения всех задач
  • класс Executors,
    который создаёт пулы потоков
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить