当前位置: 首页 > 图灵资讯 > 技术篇> 线程的run()和start()有什么区别?

线程的run()和start()有什么区别?

来源:图灵教育
时间:2023-06-02 09:21:48

线程的 run() 和 start() 有以下区别:

  1. run() 该方法是线程的实际执行代码,当线程启动时,run() 该方法将被调用。还有 start() 启动线程的方法是创建一个新的线程并使其进入就绪状态。
  2. 直接调用 run() 该方法不会创建新的线程,而是在当前线程中执行 run() 方法代码。而调用 start() 该方法将创建新的线程并执行它 run() 方法。
  3. 一个线程只能启动一次。如果你试图再次启动同一个线程,它将被抛出 IllegalThreadStateException 异常。而 run() 该方法可多次调用。
  4. start() 该方法是异步的,即它会立即返回并开始执行新的线程。而 run() 该方法是同步的,即它将一直执行到该方法完成后才返回。

总之,start() 方法是启动线程的方法, run() 该方法是线程的实际执行代码。使用线程时,应调用 start() 启动线程而不是直接调用方法 run() 方法。