是否可以直接调用Thread类的run方法

  • 调用Thread类的run()方法是可以的,但这样做不会启动一个新的线程,而是会在当前线程中执行run()方法的代码。

  • new 一个Thread,线程进入了新建状态。调用start()方法,会启动一个线程并使线程进入了就绪状态,当分配到时间片后就可以开始运行了。start()会执行线程的相应准备工作,然后自动执行run()方法的内容,这是真正的多线程工作。但是,直接执行run()方法,会把run()方法当成一个普通方法在调用该方法的线程去执行,所以这并不是多线程工作。

  • 总结:调用start()方法方可启动线程并使线程进入就绪状态,直接执行run()方法的话不会以多线程的方式执行,而是在当前线程中以普通方法调用的方式执行run()方法的代码。