當發生以下狀況時,線程將會進入阻塞態:spa
- 線程調用sleep()方法主動放棄所佔用的處理器資源。
- 線程調用了一個阻塞式IO方法,在該方法返回以前,該線程被阻塞。
- 線程試圖得到一個同步監視器,但該同步監視器正被其餘線程所持有。
- 線程在等待某個通知(notify)。
程序調用了線程的suspend()方法將該線程掛起(這個方法容易致使死鎖,應該儘可能避免使用)。
當發生以下特定的狀況時能夠解除上面的阻塞,讓該線程從新進入就緒態:線程
- 調用sleep()方法的線程通過了指定時間。
- 線程調用的阻塞式IO方法已經返回。
- 線程成功地得到了試圖取得的同步監視器。
- 線程正在等待某個通知時,其餘線程發出了一個通知。
- 處於掛起狀態的線程被調用了resume()恢復方法。