线程的六种状态

今天来说说线程的六种状态:

1.NEW状态:当我们new一个线程出来,还没有调用start()方法时。

2.Runnable状态:线程对象调用start()方法时,它会被线程调度器来执行,这个状态叫做Runnabla,它内部有两个状态,Ready状态:在CPU等待队列里排队,Running状态:在CPU上运行。(当调用Yiled的时候会从Running状态跑到Ready状态上去,线程被调度器选中的时候又从Ready状态跑到Running上去)。

3.Teminated状态:线程正常结束的状态。

4.Blocked状态:同步代码块的情况下没得到锁就是阻塞状态。

5.Waiting状态:在运行时调用了o.wait() t.join() LockSupport.park()就会进入等待状态,在调用o.notify() o.notifyAll() LockSupport.unpark()就又回到Running状态。

6.TimedWaiting: 按照时间等待,调用Thread.sleep(time) o.wait(time) t.join(time) LockSupport.parkNanos() LockSupport.parkUntil()。

posted @ 2021-08-17 17:29  白茶时雨  阅读(904)  评论(0编辑  收藏  举报