Java系列学习笔记 --- 线程(三)线程生命周期过程详解

基础知识:https://blog.csdn.net/Rao_Limon/article/details/88786481 


       线程的生命周期主要分为5个步骤,分别是:新建、就绪、运行、阻塞死亡。线程被创建之后,并非直接进入就绪状态,也并非直接进入运行状态。以下过程仅仅是介绍单个CPU所发生的情况,实际上多个处理中也发生着如下情况:

Java系列学习笔记 --- 线程(三)线程生命周期过程详解_第1张图片

 

       线程刚被创建时,JVM为其分配内存空间并初始化成员,这一过程和普通对象没有任何区别,此时的线程对象并没有表现除任何线程的动态特征。

       线程对象初始化完毕,调用start()方法之后,线程进入了就绪状态。此时,JVM会为其创建方法调用栈和程序计数器,等这一过程处理完毕之后,该线程才算是真正的进入了就绪状态,等待JVM线程调度器的调度。

       当前运行着的线程失去CPU的处理权限的时候,会释放所占用的资源进入阻塞状态,等待合适的时机再次进入就绪状态。此时,其中一个正在等待JVM线程调度器调用的线程将会获得执行的机会,在获得CPU的处理权限的时候,线程才算是真正的进入了运行状态。

Java系列学习笔记 --- 线程(三)线程生命周期过程详解_第2张图片

       线程是进程中独立运行,彼此独立的执行体。主线程的死亡并不会影响其他的线程更不会随之死亡。线程执行完毕或者结束阶段,线程并非直接就释放所占用的资源,而是等待着JVM资源调度器的调用,这个过程是需要一定的时间的。

Java系列学习笔记 --- 线程(三)线程生命周期过程详解_第3张图片

你可能感兴趣的:(Java)