Java线程的几种状态

2020-06-20  本文已影响0人  感召的鳞
  1. 新建(New):线程对象已经产生但是未启动,

如通过new产生一个线程对象,但是未调用start()之前

  1. 就绪(Runnable):每个多线程系统都有排程器,排程器会从线程池中选择一个线程并启动他,当一个线程处于可执行状态时,表示它可能正处于线程池中等待排程器启动他。

如执行了start()方法以后,线程就处于可执行状态了。

  1. 运行(running):已经获取到CPU资源,正在执行run方法

当前线程的时间片如果被cpu抢占的话就变成就绪状态

  1. 死亡(dead):当一个线程正常结束,便处于死亡状态,

如一个线程的run()函数执行完毕以后这个线程就进入死亡状态

  1. 阻塞(blocked):当一个线程处于阻塞状态时,系统排程器就会忽略他,不对他进行排程。当处于阻塞状态的线程重新回到可执行状态时,它才可能重新执行。

如通过对一个线程调用wait()函数后,线程就进入阻塞状态,只有再次调用notify或notifyAll后才能回到可执行状态

阻塞本身分为几种

image.png

Java线程中sleep()、wait()和notify()和notifyAll()、yield()、join()等方法的用法和区别

上一篇下一篇

猜你喜欢

热点阅读