java线程具有五种基本状态:
新建状态(New):当线程创建对象后,即进入了新建状态;
就绪状态(Runnable):的那个调用线程的start()方法,即线程进入就绪状态。
运行状态(Running):当CPU开始调度处于就绪状态的线程时;
阻塞状态(Blocked):处于运行状态中的线程由于某种原因,停止执行。
死亡状态(Dead) :线程执行完成或因异常退出run()方法,该线程结束生命周期。
阻塞状态:
1、等待阻塞:线程执行wait()方法。
2、同步阻塞:线程在获取synchronized同步锁失败(因为锁被其它线程所占 用),它会进入同步阻塞状态;
3、其他阻塞:通过调用sleep()或者是join()或者是发出了I/O请求时。当sleep()状态超时、join()等待线程终止或超时、或者I/O处理完毕时,线程重新转入就绪状态。
就绪状态进入到运行:线程需要得到处理器资源;
运行状态转入就绪状态: