1. 程式人生 > >執行緒的sleep()方法和yield()方法有什麼區別?

執行緒的sleep()方法和yield()方法有什麼區別?

1.sleep()方法給其他執行緒執行機會時不考慮執行緒的優先順序,因此會給低優先順序的執行緒以執行的機會

2.yield()方法只會給相同優先順序或更高優先順序的執行緒以執行的機會

3.執行緒執行sleep()方法後轉入阻塞(blocked)狀態,而執行yield()方法後轉入就緒(ready)狀態

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

5.sleep()方法比yield()方法具有更好的移植性(跟作業系統CPU排程相關)