线程的生命周期是线程对象的生老病死,即线程的状态
线程的生命周期可以通过getState()方法获得,线程的状态是Thread.State枚举类型定义的,有以下几种:
- NEW,新建状态,创建线程对象,在调用start()启动之前的状态
- RUNNABLE,可运行状态,它是符合状态,包含READY和RUNNING两个状态
- READY:表示该线程可以被线程调度器进行调度
- RUNNING:表示该线程正在执行。THread.yiled()方法可以把线程由RUNNING状态转换成READY状态
- BLOCKE D阻塞状态,线程发起阻塞的I/O操作,或者申请其他线程获取了其申请的资源,线程可以转换RUNNABLE
- WAITING:等待状态,线程执行了object.wait,join方法会把线程转换为WAITING等待状态,执行object。notify方法或加入的线程执行完毕,当前线程或转换为RUNNABLE状态
- TIMED_WATING状态,与waiting状态类似,都是等待状态,区别在于处于该状态的线程不会无限等待,如果线程没有在指定的时间范围内完成期望的操作,该线程就会自动转换为RUNABLE
- TERMINATED:终止状态,线程处于结束状态