线程的生命周期

线程在一个完整的生命周期中,一般有五种状态:

新建:当一个Thread类或子类的对象被声明或创建时,新生的线程对象处于新建状态

就绪:处于新建状态的线程被start()后,将进入线程队列等待CPU时间片,此时它已具备了运行的条件,只是没分配到CPU资源.

运行:当就绪的线程被调度并获得CPU资源时,便进入运行状态,run()方法定义了线程的操作和功能.

阻塞:在某种特殊情况下,被认为挂起或执行输出操作时,让出CPU并临时终止自己的执行,进入阻塞状态[运行->阻塞:
sleep()、join()、等待同步锁、wait()、过时方法(挂起):suspend()会导致死锁]

死亡:线程完成了它的全部工作或线程被提前强制性地终止或出现异常导致结束.

阻塞不可以是线程的最终状态,线程正常状态下的的归宿只有一个:死亡.

image.png
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容