Sobes.tech
Назад к вопросам
Junior — Middle
64

Как отличается вызов метода run от метода start у потока в Java?

Компании, где спрашивали
ИннотехИннотех

Ответ от нейросети

sobes.tech AI

Метод start() у потока в Java запускает новый поток исполнения и вызывает метод run() в этом новом потоке. То есть, когда вы вызываете start(), создаётся отдельный поток, и код внутри run() выполняется параллельно с основным.

Если же вызвать метод run() напрямую, то он будет выполнен в текущем (основном) потоке, без создания нового.

Пример:

Thread thread = new Thread(() -> System.out.println("Выполняется в новом потоке"));

thread.start(); // Запускает новый поток

thread.run(); // Выполняется в текущем потоке, как обычный метод