Easythread
Как создать поток в Java?
1Постановка
Разберём, что от вас хотят в этом вопросе и как к нему подступиться на собеседовании.
2Решение
Три способа: extends Thread, implements Runnable (предпочтительно — отделяет задачу от потока), implements Callable через ExecutorService (возвращает результат).
// 1. extends Thread
class MyThread extends Thread {
public void run() { System.out.println("running"); }
}
new MyThread().start();
// 2. Runnable — предпочтительно
Runnable r = () -> System.out.println("running");
new Thread(r).start();
// 3. Callable через ExecutorService — возвращает результат
Callable<Integer> c = () -> 42;
Future<Integer> f = executor.submit(c);
Integer result = f.get(); // блокирует до готовностиstart()запускает новый поток ОС и вызываетrun();run()— обычный метод в текущем потоке;- В production не создавать
Threadвручную — использовать ExecutorService; - Virtual threads (Java 21):
Thread.startVirtualThread(r)— лёгкие потоки.
3Как отвечать
- Сначала уточните условия и ограничения, покажите аналитическое мышление.
- Рассуждайте вслух — интервьюеру важен ход мысли, а не только финальный ответ.
- Оцените сложность по времени и памяти (Big-O), если это алгоритмический вопрос.
💡
На реальном собеседовании Alffert подскажет развёрнутый ответ в реальном времени.