Каково различие между Thread.start () и Thread.run ()?

Почему мы звоним start() метод, который в свою очередь звонит run() метод?
Не можем мы непосредственно звонить run()?

Дайте пример, где существует различие.

35
задан Paŭlo Ebermann 31 August 2011 в 23:45
поделиться

4 ответа

Нет, вы не можете. Вызов run выполнит метод run () в том же потоке без запуска нового потока.

42
ответ дан 27 November 2019 в 07:03
поделиться

Почему мы вызываем метод start () , который, в свою очередь, вызывает метод run () ?

Нет, это неточно. start () , в свою очередь, не вызывает метод run. вместо этого запускает поток, который выполняет метод запуска. Это родное.

Разве мы не можем напрямую вызвать run () ?

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

Приведите пример, в котором есть разница.

В сети миллионы. Следовательно, я не дублирую.

18
ответ дан 27 November 2019 в 07:03
поделиться

Потому что start () не просто вызывает run (). Он запускает новый поток и в этом потоке вызывает run ().

1
ответ дан 27 November 2019 в 07:03
поделиться

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

0
ответ дан 27 November 2019 в 07:03
поделиться