线程的五种状态

1.新建状态(New):

创建一个新的线程对象。

2.就绪状态(Runnable):

线程创建对象后,其他线程调用start()方法,该线程处于就绪状态,资源已经准备就绪,等待CPU资源。

3.运行状态(Running):

处于就绪状态的线程获取到CPU资源后进入运行状态。

4.阻塞状态(Blocked):

阻塞状态是线程由于某些原因放弃CPU使用,暂时停止运行。

(1)等待阻塞:线程调用start()方法,JVM会把这个线程放入等待池中,该线程需要其他线程调用notify()或notifyAll()方法才能被唤醒。

(2)同步阻塞:运行的线程在获取对象的同步锁时,若该同步锁被其他线程占用,则JVM会把该线程放入锁池中。

(3)其他阻塞:运行的线程执行sleep()或join()方法,或者发出了I/O请求时,JVM会把该线程置为阻塞状态。当sleep()状态超时、join()等待线程终止或者超时、或者I/O处理完毕时,线程重新转入就绪状态。

5.终止状态(Terminated):

线程run()方法运行完毕,该线程结束。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容