Back to questions
СБЕР
Junior — Middle
77
Какое отличие между вызовом метода run и использованием метода start при работе с интерфейсом Runnable?
Companies where asked
Answer from AI
sobes.tech AI
Метод run() интерфейса Runnable содержит код, который должен выполняться в отдельном потоке, но вызов run() напрямую — это обычный вызов метода в текущем потоке, без создания нового потока.
Метод start() класса Thread создает новый поток и вызывает внутри него метод run(). Таким образом, чтобы запустить код в новом потоке, нужно создать объект Thread, передать ему Runnable и вызвать start(), а не run() напрямую.
Пример:
Runnable task = () -> System.out.println("Выполняется в потоке " + Thread.currentThread().getName());
// Вызов run() напрямую — выполняется в текущем потоке
task.run();
// Запуск в новом потоке
Thread thread = new Thread(task);
thread.start();