1.使用sleep()暫停當前線程以后,其他的線程會取得履行機會,但是調用yield()以后,只有優先級和當前線程優先級相同或更高的線程才能獲得履行的機會。
2.使用sleep()會使線程進入阻塞狀態,以后在阻塞時間過去以后,線程才能繼續履行,但是使用yield()只是強迫當前線程進入就緒狀態,有可能調用yield()以后,當前線程立即又取得履行機會。
3.使用sleep()需要捕捉異常,但是使用yield()則不需要捕捉。
4.sleep()比yield()具有更好的可移植性,通常不建議使用yield()來進行多線程并發的控制。