点击上方“蓝字”关注本公众号 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管理对象方式去管理对象的生命周期去管理,只有当没有任何其他对象引用时才销毁。 |
|
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系
[邮箱地址] 删除
|