<线程状态文字与图解>
线程的生命周期:
线程的生命周期通过getState()方法获得,有以下几种:
-
NEW 新建状态,创建了线程对象,在调用start()启动之前的状态;
-
RUNNABLE 可运行状态,它是一个复合状态,包含:READY和RUNNING两个状态,READY状态该线程可以呗线程调度器进行调度使它处于RUNNING状态,RUNNING状态表示该线程正在执行;Thread.yield()方法可把线程由RUNNING状态转为READY状态;
-
BLOCKED 阻塞状态,线程发起阻塞的I/O操作,或者申请由其他线程占用的独占资源,线程或装换为BLOCKED阻塞状态,处于阻塞状态的线程不会占用CPU资源,当阻塞IO操作执行完成,或者线程获得了其生气的资源,线程可以转换为RUNNABLE;
-
WAITING 等待状态,线程执行了object.wait() , thread,join()两个方法会吧线程转换为WAITING等待状态,执行object.notify()方法,或者加入的线程完毕,当前线程会转换为RUNNABLE状态;
-
TIME_WAITING 状态,与WAITING状态类似,都是等待状态,区别在于处于该状态的线程不会无限等待,如果线程没有在指定的时间范围内完成期望的操作,该线程会自动转换为RUNNABLE;
-
TERMINATED 终止状态,线程结束,处于终止状态。