什麼是阻塞?線程可以運行,可是某個條件阻止它的運行,進入阻塞狀態的線程調度器不會給他分配CPU時間片,直到他再次進入就緒狀態的時候才能夠。線程
1.等待輸入或者輸出完成對象
2.線程自身調用了waitget
3.線程自身調用了sleep同步
4.任務在調用了某個對象上的同步方法,可是鎖被其餘任務獲取了。博客
其實總結起來就是一個是本身把本身打暈,另外一個是別人把本身打暈。對於自殘的這種就是一個調用wait,一個調用sleep,他們的區別是調用sleep不會讓出cpu的時間片,而調用wait會讓出cpu時間片。it
後者則是,等待外界的輸入或者輸出到外界的完成,或者是友軍不給力,沒有把鎖給讓出來。方法
個人我的博客總結