线程的6种状态
六个新状态:New, Runnable, Blocked, Waiting, Timed Waiting, Terminated
New
已创建但是还没启动的方法
Runnable
调用start
方法之后,一定进入这一状态,可运行的。即使没有拿到资源,也是可运行的
Blocked
进入被synchronized
的代码块或者方法修饰的。其他的不是。
Waiting
没有设置时间参数的Object.wait()
或者Thread.join()
方法。
Timed_Waiting
带有时间案数的wait方法
Terminated
正常执行完结,或者发生未被捕获的异常抛出异常。
线程状态之间的转化
另外从图解Java并发设计模式中发现一幅图也清晰。
阻塞的概念
一般情况下,把Blocked
,Waiting
,Timed_waiting
都称为阻塞。