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

sleep()方法和yield()方法的區別

個人部落格:小景哥哥

sleep()方法和yield()方法的區別

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

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

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

④sleep()方法比yield()方法具有更好的可移植性。