JAVA线程有哪些状态
1. NEW
线程刚刚创建,还没有调用该线程对象的start()方法,则线程就处于这个状态。
2. RUNNING
就绪态 和 运行态。处于该状态的线程被操作系统调度执行、分配了CPU时间片就处于运行态;没有被调度执行则处于就绪态,当得到CPU时间片就可以运行,变为运行态。
3. BLOCKED
阻塞状态。线程等待锁的状态,等待获取锁进入同步块/同步方法。
4. WAITING
等待状态。等待另一个线程以执行特定的操作。吊影以下方法进入等待状态:
Object.wait()
thread.join() (本线程阻塞,等待thread执行完后本线程再接着执行,在等待thread线程执行完的过程中,本线程就处于WAITING状态)
LockSupport.park()
5. TIMED_WAITING
线程等待一段时间。调用带时间参数的
Thread.sleep()
object.wait()
Thread.join()
LockSupport.parkNanos()
LockSupport.parkUntil()
6. TERMINATED
进程结束状态。