Встречается на собеседованиях • сегодня
Как реализуешь отправку и ожидание выполнения задач в ThreadPoolExecutor
В Java `ThreadPoolExecutor` можно использовать для отправки задач через методы `execute()` (для `Runnable`) или `submit()` (для `Callable`, возвращает `Future`). Пример:
```java
ExecutorService executor = Executors.newFixedThreadPool(4);
// Отправка Runnable
executor.execute(() -> System.out.println("Task executed"));
// Отправка Callable и ожидание результата
Future future = executor.submit(() -> {
TimeUnit.SECONDS.sleep(1);
return 42;
});
try {
Integer result = future.get(); // Блокирующий вызов
System.out.println("Result: " + result);
} catch (Exception e) {
e.printStackTrace();
}
executor.shutdown();
```
Ключевые моменты:
1. `submit()` возвращает `Future` для контроля выполнения
2. `get()` блокирует поток до завершения задачи
3. Можно использовать `get(timeout, unit)` для ограниченного ожидания
4. Обязательно завершать пул через `shutdown()`

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы