线程生命周期

线程的生命周期有6种状态:

线程的生命周期有6种,分别是新建状态、运行状态、阻塞状态、等待状态、超时等待状态和终止状态:

 

线程在自身的生命周期中,并不是固定的处于某个状态,而是随着代码的执行在不同的状态之间进行切换:
当线程通过new方法被创建之后,调用start()方法开始运行。
当线程执行当程序执行wait()方法后,线程进入等待状态(java将操作系统中的运行状态和就绪状态合并为运行状态),
进入等待状态的线程需要依靠其它线程的通知才能够返回到运行状态,而超时等待状态相当于在等待状态的基础上增加了超时限制,也就是超过时间之后将会返回到运行状态。
当线程调用同步方法时,在没有获取到锁的情况下,线程将会进入阻塞状态。
线程在执行Runnable的run方法之后就会进入到终止状态。

新建(new):线程被创建,但是还没有调用start方法
运行状态(runnable):线程创建后,调用start()方法开始运行。java线程将操作系统的就绪和运行两种状态笼统的称 作为“运行中”
阻塞状态(blocked):当线程调用同步方法时,在没有获取到锁的情况下,线程将会进入阻塞状态。
等待状态waiting):当程序执行wait()方法后,线程进入等待状态,进入等待状态的线程需要依靠其它线程的通知才能够 返回到运行状态
超时等待状态(time_waiting):该状态不同于waitting,它在等待状态的基础上增加了超时限制,也就是超过时间之后 将会返回到运行状态
终止状态(terminated):表示当前线程已经被执行完毕

 

操作系统层面上的生命周期:

新建、就绪、运行、阻塞、死亡

 

线程生命周期

上一篇:如何使用百度音乐搜索接口API


下一篇:window.open || window.showModalDialog || window.showModelessDialog