线程的生命周期笔记

一个线程首先进行初始化 也就是执行stat()方法--->ready-to-run() 准备运行(就绪状态)一旦抢占到了cpu资源就变成运行中状态--->running() 正常运行结束后---->Dead()终止状态

在ready-to-run()状态时 调用了stop()方法也是就直接进入了Dead()终止状态

在running() 正常运行时调用sleep()或者wait()回到等待状态,另一种是IO调用,以及同步代码块 进入阻塞状态

sleep()方法是超时等待的意思,会进入ready-to-run()进行准备就绪状态,竞争cpu资源

wait()方法和sleep()方法一样是线程的等待,不同的是wait()需要唤醒否则一直等待着 ,sleep()是指定时间后,在时间内唤醒,或者过时后进入ready-to-run()

wait()需要notify()或者notifyAll()方法唤醒

sleep()或者wait()是不会进入了Dead()终止状态

IO调用, 进入阻塞状态 对应的为Data received 拿到数据 以及同步代码块 对应llock obtained 获取到锁 进入到running() 正常运行

在阻塞状态也会进入了Dead()终止状态

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

友情链接更多精彩内容