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

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

sleep()方法和yield()方法的區別主要表現在以下幾個地方:

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

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

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

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