JavaSE 学习参考:线程生命周期

Java线程有五种状态:新建,就绪,运行,阻塞,销毁.

新建状态:

在程序中使用new Thread(...)即 使用Thread类构造方法创建了一个Thread类对象后,新的线程对象便处于新建状态。这时,操作系统 (这里是批JVM)为其有了相应的内存空间和资源,处于不可运行状态。

就绪状态:

新建线程对象后,调用Thread类的start()方法可以启动线程(注意不是run方法,直接调用run方法,那仍然在主线程中执行)。start()调用后代表线程进入就绪状态,也就是进入CPU调度队列排队,并立即运行。

运行状态:

处于就绪状态的线程被系统调度获得CPU执行机会,线程就进入了运行状态。此时执行的Thread对象的run()方法。run()方法定义了线程的操作和功能。

堵塞状态:

正在执行的线程在某些特殊情况下(程序自动调用sleep(),suspend(),wait()方法或等待某类资源如打印机,用户输入),这时会让出CPU并暂时中止自己的执行,进入堵塞状态。堵塞时,线程并没有进入队列,只有当引起堵塞的原因被消除后,线程才可以转入就绪状态.

销毁状态:

线程run()方法执行结束后或调用stop()方法时(不推荐)或,即处于销毁状态。

注意进行销毁状态的线程并不代表Thread类的对象也要销毁,Thread对象仍然按照JVM管理对象方式去管理对象的生命周期去管理,只有当没有任何其他对象引用时才销毁。

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

相关阅读更多精彩内容

友情链接更多精彩内容