线程的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() 方法。

上一篇 特征工程案例--(python合并表,交叉表,主成分分析)
下一篇 go 多线程

文章素材均来源于网络,如有侵权,请联系管理员删除。

标签: Java教程Java基础Java编程技巧面试题Java面试题