Встречается на собеседованиях • сегодня

Какие знаешь способы запуска потока

В Java есть несколько способов запуска потока: 1. **Наследование от `Thread`** Переопределяем метод `run()` и вызываем `start()`: ```java class MyThread extends Thread { public void run() { System.out.println("Thread is running"); } } new MyThread().start(); ``` 2. **Реализация `Runnable`** Передаем объект `Runnable` в конструктор `Thread`: ```java Runnable task = () -> System.out.println("Runnable task"); new Thread(task).start(); ``` 3. **Использование `ExecutorService`** Запуск через пул потоков: ```java ExecutorService executor = Executors.newSingleThreadExecutor(); executor.submit(() -> System.out.println("Executor task")); executor.shutdown(); ``` 4. **`Callable` и `Future`** Для потоков, возвращающих результат: ```java ExecutorService executor = Executors.newSingleThreadExecutor(); Future future = executor.submit(() -> "Callable result"); System.out.println(future.get()); executor.shutdown(); ``` 5. **Java 8+ `CompletableFuture`** Асинхронный запуск: ```java CompletableFuture.runAsync(() -> System.out.println("Async task")); ``` Основное отличие — `start()` создает новый поток, а `run()` выполняет код в текущем потоке. Для многозадачности всегда используйте `start()` или пулы потоков.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы