为什么我们调用 Thread.start() 方法,而后者又调用 run 方法?
2022-09-01 00:42:49
为什么我们调用线程对象的方法,而线程对象又调用方法,为什么不直接调用方法呢?start()
run()
run()
为什么我们调用线程对象的方法,而线程对象又调用方法,为什么不直接调用方法呢?start()
run()
run()
[...]为什么不直接调用run()方法?
该方法只是一个普通方法(由您覆盖)。与任何其他普通方法一样,直接调用它将导致当前线程执行 。run()
run()
所有的魔法都发生在里面。该方法将导致 JVM 生成一个新线程,并使新生成的线程执行 。start()
start()
run()
如果直接调用 run() 方法,则其主体在当前线程的上下文中执行。调用方法时,将创建一个新线程,并在此新线程中执行方法。start()
run()