Thread.start()和Thread.run()有什么区别?

sgo*_*les 35 java concurrency multithreading

为什么我们调用start()方法,而方法又调用run()方法?
我们不能直接拨打电话run()吗?

请举例说明存在差异.

Mar*_*rko 42

不,你不能.调用run将在同一个线程中执行run()方法,而不启动新线程.

  • @Dev er dev,从技术上讲,你可以直接调用run()方法,因为它是公共接口的一部分.所以你的答案在技术上并不准确. (6认同)

Che*_*hez 18

为什么我们调用start()方法,而方法又调用run()方法?

不,那是不精确的.start()反过来不调用run方法.相反,它启动执行run方法的线程.这是原生的.

我们不能直接拨打电话run()吗?

如果run()直接调用则不启动该线程,只需在同一调用方法上执行该方法即可.

请举例说明存在差异.

网上有数百万.因此我不重复.