当发生以下状况时,线程将会进入阻塞态:spa
- 线程调用sleep()方法主动放弃所占用的处理器资源。
- 线程调用了一个阻塞式IO方法,在该方法返回以前,该线程被阻塞。
- 线程试图得到一个同步监视器,但该同步监视器正被其余线程所持有。
- 线程在等待某个通知(notify)。
程序调用了线程的suspend()方法将该线程挂起(这个方法容易致使死锁,应该尽可能避免使用)。
当发生以下特定的状况时能够解除上面的阻塞,让该线程从新进入就绪态:线程
- 调用sleep()方法的线程通过了指定时间。
- 线程调用的阻塞式IO方法已经返回。
- 线程成功地得到了试图取得的同步监视器。
- 线程正在等待某个通知时,其余线程发出了一个通知。
- 处于挂起状态的线程被调用了resume()恢复方法。