这是一个常见的面试问题:
new一个Thread,该线程进入了新建状态,调用start()方法,会启动一个线程并使该线程进入了就绪状态,当分配到时间片之后,该线程就可以运行了。
start()方法会执行线程的相应准备工作,然后自动执行run()方法的内容,是真正的创建了一个线程去执行任务。
直接运行run()方法,会把run()方法当成一个main线程下的普通方法去执行,并不会创建出一个新的线程去执行run()方法中写的任务。在main线程中调用run()方法后,要等run方法执行完毕后,才能继续执行接下来的方法,所以这不是一个真正的多线程工作。