線程的阻塞態

當發生以下狀況時,線程將會進入阻塞態spa

  1. 線程調用sleep()方法主動放棄所佔用的處理器資源。
  2. 線程調用了一個阻塞式IO方法,在該方法返回以前,該線程被阻塞。
  3. 線程試圖得到一個同步監視器,但該同步監視器正被其餘線程所持有。
  4. 線程在等待某個通知(notify)。
  5. 程序調用了線程的suspend()方法將該線程掛起(這個方法容易致使死鎖,應該儘可能避免使用)。

當發生以下特定的狀況時能夠解除上面的阻塞,讓該線程從新進入就緒態線程

  1. 調用sleep()方法的線程通過了指定時間。
  2. 線程調用的阻塞式IO方法已經返回。
  3. 線程成功地得到了試圖取得的同步監視器。
  4. 線程正在等待某個通知時,其餘線程發出了一個通知。
  5. 處於掛起狀態的線程被調用了resume()恢復方法。