首页 / 科技百科 / 正文

线程start和run的区别 

线程的start方法和run方法主要有以下几点区别:

1. 调用的线程不一样:start方法是开启一个线程去执行,而run方法是调用的线程去执行,大多数情况是main。

2. 执行时机不同:run方法会立即执行,它是一个普通方法,可以被调用多次。而start方法则会由new状态转变成runnable就绪状态,获得时间片以后才能得到执行,它只能被调用一次,再次调用会报IllegalThreadStateException。

3. 线程生命周期:start方法和run方法的执行也会影响到线程的生命周期。start方法会开启线程,而run方法则只是在主线程中执行。

需要注意的是,如果在子类里面覆盖start方法,然后什么都不写,那么就不会调用父类Thread的start方法了,那么此时就不会去开启线程了。

如有侵权请及时联系我们处理,转载请注明出处来自