多线程与高并发编程
线程的状态(JDK源码Thread.State)
线程分为六种状态
1.NEW
尚未启动的线程的线程状态
2.RUNNABLE
可运行线程的读取状态。状态为runnable的线程正在Java虚拟机中执行,但是它可能正在等待来自操作系统的其他资源,例如处理器
3.BLOCKED
线程的线程状态被阻塞,等待监视器锁定。 *处于阻塞状态的线程正在等待监视器锁定*输入同步块/方法或*调用*Object.wait后重新输入同步块/方法。
4.WAITING
等待线程的线程状态。由于调用以下方法之一,线程处于等待状态:
Object.wait没有超时
Thread.join没有超时
LockSupport.park
处于等待状态的线程正在等待另一个线程执行特定操作。例如,一个在对象上调用Object.wait()的线程正在等待另一个线程在该对象上调用Object.notify()或Object.notifyAll()。 名为Thread.join()的线程正在等待指定的线程终止
5.TIMED_WAITING
具有指定等待时间的等待线程的线程状态。 由于以指定的正等待时间调用以下方法之一,因此线程处于定时等待状态:
Thread.sleep
Object.wait超时
Thread.join与超时
LockSupport.parkNanos
LockSupport.parkUnti
6.TERMINATED
终止线程的线程状态。 线程已完成执行。