天天看點

線程的阻塞态

當發生如下情況時,線程将會進入阻塞态:

  1. 線程調用sleep()方法主動放棄所占用的處理器資源。
  2. 線程調用了一個阻塞式IO方法,在該方法傳回之前,該線程被阻塞。
  3. 線程試圖獲得一個同步螢幕,但該同步螢幕正被其他線程所持有。
  4. 線程在等待某個通知(notify)。
  5. 程式調用了線程的suspend()方法将該線程挂起(這個方法容易導緻死鎖,應該盡量避免使用)。

當發生如下特定的情況時可以解除上面的阻塞,讓該線程重新進入就緒态:

  1. 調用sleep()方法的線程經過了指定時間。
  2. 線程調用的阻塞式IO方法已經傳回。
  3. 線程成功地獲得了試圖取得的同步螢幕。
  4. 線程正在等待某個通知時,其他線程發出了一個通知。
  5. 處于挂起狀态的線程被調用了resume()恢複方法。

版權聲明:本文為CSDN部落客「weixin_34301132」的原創文章,遵循CC 4.0 BY-SA版權協定,轉載請附上原文出處連結及本聲明。

原文連結:https://blog.csdn.net/weixin_34301132/article/details/92344871