每日一题(四)
今天更的有点晚,今天跑了一天招聘,晚上有朋友有事请帮忙。抱歉
题目:
java线程的状态有哪些?
分析:
java线程的状态其实就是在指java线程的生命周期。
解答:
完整的生命周期包括新生、就绪、运行、阻塞和死亡五种状态。
新生态:用new关键字和某类线程的构造方法创建一个线程对象后,就处于新生状态。此时使用start()方法进入就绪状态。
就绪态:处于该状态的线程具备了运行的条件,但未分配到CPU资源,进入线程队列排队,等待cpu。一旦获得cpu资源就进入运行状态,并自动调用自己的run方法。
运行态:转到阻塞状态或死亡状态方式参考它们。
阻塞状态:特殊情况下出让CPU并暂时终止自己的执行,进入阻塞状态。情形包括:suspend、join或sleep或等待I/O设备的使用权。阻塞到运行中间需要就绪态。
死亡状态:处于死亡态的线程将永远不再执行。线程死亡有两个原因:一是正常运行的线程完成了它的全部工作;二是线程被提前强制性地终止。例如通过执行stop或destroy方法来终止。