阻塞狀態與等待狀態有什麼不同

阻塞狀態與等待狀態有什麼不同

阻塞狀態與等待狀態的區別:

實際上兩者不用刻意區分兩者,因爲兩者都會暫停線程的執行

兩者的區別是:進入等待狀態是線程主動的,而進入阻塞狀態是被動的。更進一步的說,進入阻塞狀態是在同步, 而進入等待狀態是在同步代碼之內。

兩者的共同點是:

都暫時停止線程的執行,線程本身不會佔用CPU時間片。

區別是調用了sleep方法的線程直接受CPU調度,而wait則是等待另外的java線程在持有同一個對象鎖的同步塊,方法中進行notify調用。