关于线程的生命周期

关于线程的生命周期问题

java中线程的生命周期大概可以分为5个过程:

1.new :当通过new关键字创建了Thread类(或者其他子类)的对象

2.Runnable: 如果thread类调用了start()方法时,那么此线程就会由new状态转化为Runnable状态。此时还没有获取到CPU,处于Runnbale状态的线程,在等待线程调度器为其分配CPU时间,也就是等待时间分片轮转到自己这里;第二种情况就是线程处于Runnable状态时并没有运行完自己的run方法,CPU用完了之后回到Runnable状态;还有一种状态就是blocked状态的线程结束了当前的blocked状态之后重新回到runnbale状态。

3.Running: 获取到了CPU的Runnable线程。

4.Blocked: 在Running状态中出现了类似等待,比如调用了sleep(),出现了线程阻塞状态。

5.Dead: 在Running状态执行完run()后,状态就转化为了Dead。