Ответ
Да, java.lang.Runnable — это функциональный интерфейс. Он определяет контракт для задачи, которая может быть выполнена потоком (Thread).
Ключевые характеристики:
- Содержит единственный абстрактный метод
void run(). - Не принимает параметров и не возвращает результат.
- Является основой для многопоточности и параллельного выполнения задач.
- Может быть представлен лямбда-выражением или ссылкой на метод.
Примеры использования:
-
Создание потока с лямбдой:
Runnable task = () -> { System.out.println("Задача выполняется в потоке: " + Thread.currentThread().getName()); }; new Thread(task).start(); -
Передача в ExecutorService:
ExecutorService executor = Executors.newFixedThreadPool(2); executor.submit(() -> System.out.println("Асинхронное выполнение")); executor.shutdown();
Важно: Для задач, которые должны возвращать результат или бросать проверяемые исключения, следует использовать интерфейс Callable<V>.