1. 程式人生 > >sleep和yield方法的區別

sleep和yield方法的區別

①sleep方法給其他執行緒執行機會時不考慮執行緒的優先順序,因此會給低執行緒優先順序執行的機會,而yield方法只會給相同優先順序或者更高優先順序執行緒執行的機會

②執行緒執行sleep()方法後轉入阻塞狀態,所以,執行sleep()方法的執行緒在指定的時間內不會被執行,而yield()方法只是使當前執行緒重新回到可執行狀態,所以執行yield()方法的執行緒可能在進入可執行狀態後馬上又被執行

③sleep()方法宣告丟擲InterruptedException,而yield()方法沒有宣告任何異常

④sleep()方法比yield()方法(跟作業系統相關)有更好的可移植性