线程的start()方法和run()方法的区别,压根不是一个东西,虽然说有时候执行出来的效果是一样的,但根本就是两个东西
不同的地方如下
- 调用的线程不一样
start是开启一个线程去执行,run是调用的线程去执行,大多数情况是main
2.执行时机不同
run方法会立即执行,run方法是普通方法,普
start则会由new状态转变成runnable就绪状态,获得时间片以后才能得到执行
(知识点的联想,关联线程的生命周期,线程池的生命周期)
- 调用次数
run方法是普通方法,普通方法是可以被调用多次的
start只能被调用一次,再次调用会报IlleaglThreadStateException
线程的生命周期
线程池的生命周期