快速认识线程:
线程定义:
操作系统中对线程的定义是:线程(thread)是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。每个线程都有自己的局部变量表、程序计数器、以及生命周期。
线程生命周期:
通过上图我们可以知道线程的生命周期主要为五个阶段:
NEW:
NEW只是创建了一个线程对象,并不处于执行状态,因为没有调用start启动线程。New状态通过start方法进去RUNNABLE状态
RUNNABLE:
线程对象调用start方法后进去RUNNABLE状态,此时jvm真正创建了一个线程。意味着线程具有个执行资格,但需要等待cpu调度。
RUNNING:
一旦cpu通过轮询或则其他方式从执行队列中调度了线程,线程开始执行自己的逻辑代码。running状态可能发生一下状态转换:
进入TERMINATED状态,比如调用了jdk不推荐的stop方法或者某个逻辑标识
进入BLOCKED状态,比如调用sleep,或者wait方法而加入waitset