黑马程序员技术交流社区
标题:
线程状态与线程阻塞
[打印本页]
作者:
Synaric
时间:
2015-10-3 09:55
标题:
线程状态与线程阻塞
一个线程可以处于以下4种状态之一:
新建(new):当线程被创建时,它会短暂地处于这种状态,它已经被分配了系统资源,并进行了初始化。之后调度器将它转变为就绪状态或阻塞状态。
就绪(runnable):只要调度器把时间分片分给任务,任务就可以运行,任意时刻,线程可以运行可与不运行,这点不同于死亡和阻塞。
阻塞(blocked):线程能够运行,但某个条件阻止它运行,调度器将忽略被阻塞的线程,不分配时间分片,直到线程重新变为就绪状态。
死亡(dead):它的任务已结束,不会获得时间分片、也不可调度。线程的死亡通常从run方法返回,也可以被interrupt方法中断。
任务处于阻塞状态可能有如下原因之一:
调用sleep使任务休眠
调用wait使任务挂起
任务等待某个IO流
任务尝试获得同步块、方法的锁,但是锁已经被锁定,任务等待锁的释放
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2