【阻塞狀態與等待狀態有什么不同】阻塞狀態與等待狀態的區別:
實際上兩者不用刻意區分兩者,因為兩者都會暫停線程的執行 。
兩者的區別是:進入等待狀態是線程主動的,而進入阻塞狀態是被動的 。更進一步的說,進入阻塞狀態是在同步,而進入等待狀態是在同步代碼之內 。
兩者的共同點是:
都暫時停止線程的執行,線程本身不會占用CPU時間片 。
區別是調用了sleep方法的線程直接受CPU調度,而wait則是等待另外的java線程在持有同一個對象鎖的同步塊,方法中進行notify調用 。
【阻塞狀態與等待狀態有什么不同】阻塞狀態與等待狀態的區別:
實際上兩者不用刻意區分兩者,因為兩者都會暫停線程的執行 。
兩者的區別是:進入等待狀態是線程主動的,而進入阻塞狀態是被動的 。更進一步的說,進入阻塞狀態是在同步,而進入等待狀態是在同步代碼之內 。
兩者的共同點是:
都暫時停止線程的執行,線程本身不會占用CPU時間片 。
區別是調用了sleep方法的線程直接受CPU調度,而wait則是等待另外的java線程在持有同一個對象鎖的同步塊,方法中進行notify調用 。