本帖最后由 先小涛 于 2013-4-19 15:03 编辑
java中,每个线程都需经历新生、就绪、运行、冻结和死亡五种状态,线程从新生到死亡的状态变化称为生命周期。用new运算符和Thread类或其子类建立一个线程对象后,该线程就处于新生状态。
新生(被创建)--->就绪:通过调用start()方法
就绪(临时状态,说就绪更准确点)--->运行:处于就绪状态的线程一旦得到CPU,就进入运行状态并自动调用自己的run()方法
运行--->冻结:处于运行状态的线程,执行sleep()方法,或等待I/O设备资源,让出CPU并暂时中止自己运行,进入阻塞状态
冻结--->就绪:睡眠时间已到,或等待的I/O设备空闲下来,线程便进入就绪状态,重新到就绪队列中等待CPU。当再次获得CPU时,便从原来中止位置开始继续运行。
运行--->死亡(1)(正常情况下)线程任务完成
(2)(非正常状况)线程被强制性的中止,如通过执行stop()或destroy()方法来终止一个线程 |