C#中sleep和wait的區別分析


本文較為詳細的分析了C#中sleep和wait的區別。分享給大家供大家參考。具體分析如下:

sleep和wait都是使線程暫時停止執行的方法,但它們有很大的不同。

①. sleep是線程類Thread 的方法,它是使當前線程暫時睡眠,可以放在任何位置。

而wait是Object類的方法,它是使當前線程暫時放棄對象的使用權進行等待,必須放在同步方法或同步塊里。

②. Sleep使用的時候,線程並不會放棄對象的使用權,即不會釋放對象鎖,所以在同步方法或同步塊中使用sleep,一個線程訪問時,其他的線程也是無法訪問的。

而wait是會釋放對象鎖的,就是當前線程放棄對象的使用權,讓其他的線程可以訪問。

③. 線程執行wait方法時,需要另一個線程調用notify進行喚醒。

而sleep只是暫時休眠一定時間,時間到了之后,自動恢復運行,不需另外的線程喚醒。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM