Найти в Дзене
DEBAGanov

Java 1039. В чём заключается разница между методами start() и run()?

Java, разница между методами start() и run() связана с созданием и запуском потока выполнения.

Метод start():

  • Метод start() является частью класса Thread и используется для запуска нового потока.
  • При вызове start(), происходит следующее:
  • Создается новый поток выполнения.
  • Вызывается метод run() в новом потоке.
  • Код, определенный в методе run(), будет выполняться параллельно с остальным кодом программы в отдельном потоке.
  • Запуск потока осуществляется путем вызова start() один раз для каждого экземпляра Thread.

Метод run():

  • Метод run() является частью интерфейса Runnable или может быть переопределен в классе, расширяющем Thread.
  • Когда вы вызываете метод run(), код, определенный внутри него, выполняется в текущем потоке.
  • Если метод run() вызывается напрямую, то код выполняется последовательно без создания нового потока.
  • Обычно метод run() используется для определения задачи (тела) потока, а не для запуска самого потока.

Таким образом, основная разница заключается в том, что start() создает новый поток и вызывает run() в этом потоке, тогда как run() выполняет код последовательно в текущем потоке. В большинстве случаев вы должны использовать метод start(), чтобы запустить выполнение кода в отдельном потоке.

1606 вопрос-ответ по Java: https://github.com/DEBAGanov/interview_questions

Tелеграмм канал: https://t.me/DEBAGanov

Мое резюме: https://github.com/DEBAGanov