Junior — Middle
Was ist der Unterschied zwischen dem Aufruf der Methode run und der Verwendung der Methode start bei der Arbeit mit der Schnittstelle Runnable?
sobes.tech KI
Antwort von 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();