线程的start()方法和run()方法的区别

139 阅读1分钟

线程的start()方法和run()方法的区别,压根不是一个东西,虽然说有时候执行出来的效果是一样的,但根本就是两个东西

不同的地方如下

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

2.执行时机不同

    run方法会立即执行,run方法是普通方法,普
    start则会由new状态转变成runnable就绪状态,获得时间片以后才能得到执行
    (知识点的联想,关联线程的生命周期,线程池的生命周期)
  1. 调用次数
    run方法是普通方法,普通方法是可以被调用多次的
    start只能被调用一次,再次调用会报IlleaglThreadStateException

线程的生命周期

image.png

线程池的生命周期

image.png