1、创建状态(new):新建了一个线程对象
2、就绪状态(Runnable):创建线程对象后,其他线程调用了该对象的start()方法,此线程位于可运行池中,等待cpu的使用权
3、运行状态(Running):得到CPU时间片
4、阻塞状态(Blocked):线程因某种原因暂时放弃CPU的使用权,暂时停止运行,直到线程进入就绪状态,才有机会转入运行状态
1)同步阻塞:运行的线程在获取对象的同步锁时,该同步锁被其他的线程占用,则JVM会将该线程放入锁池中
2)等待阻塞:运行的线程执行wait()方法,JVM会将该线程放入等待池中
3)其他阻塞:运行的线程执行sleep()方法或join()方法、或者发出了I/O请求,JVM会把该线程置于阻塞状态。当sleep()状态到时、join()等待线程终止或者超时、或者I/O处理完毕,线程重新转入就绪状态
5、终止状态:线程执行完毕或因异常退出run()方法