1.使用sleep()暫停當(dāng)前線程以后,其他的線程會(huì)取得履行機(jī)會(huì),但是調(diào)用yield()以后,只有優(yōu)先級(jí)和當(dāng)前線程優(yōu)先級(jí)相同或更高的線程才能獲得履行的機(jī)會(huì)。
2.使用sleep()會(huì)使線程進(jìn)入阻塞狀態(tài),以后在阻塞時(shí)間過(guò)去以后,線程才能繼續(xù)履行,但是使用yield()只是強(qiáng)迫當(dāng)前線程進(jìn)入就緒狀態(tài),有可能調(diào)用yield()以后,當(dāng)前線程立即又取得履行機(jī)會(huì)。
3.使用sleep()需要捕捉異常,但是使用yield()則不需要捕捉。
4.sleep()比yield()具有更好的可移植性,通常不建議使用yield()來(lái)進(jìn)行多線程并發(fā)的控制。