Java 并发编程之启动线程

187 阅读1分钟

启动线程的正确方式及错误的方式

  1. 启动线程的正确方式通过调用线程的 start 方法
  2. 而错误的方式调用 run 方法

首先从源码的角度分析

start 启动方式

从下面的代码可以看出,start 启动步骤分为三部曲

  1. 判断线程的状态是否为初始化【通过这个也能解释为什么不能连续调用两次 start 方法】
  2. 将当前线程对象加入线程组
  3. 调用 start0 本地方法通过 JVM 启动一个新的线程,接着通过新线程执行子任务

run 启动方式

从下图可以看出,如果我们调用 run 方法执行任务,本质上是通过 Thread 对象运行 run 方法,即通过主线程执行 run 方法,和普通的对象执行某一个方法没有区别