C#中sleep和wait的區(qū)別分析
本文較為詳細(xì)的分析了C#中sleep和wait的區(qū)別。分享給大家供大家參考。具體分析如下:
sleep和wait都是使線程暫時(shí)停止執(zhí)行的方法,但它們有很大的不同。
①. sleep是線程類Thread 的方法,它是使當(dāng)前線程暫時(shí)睡眠,可以放在任何位置。
而wait是Object類的方法,它是使當(dāng)前線程暫時(shí)放棄對(duì)象的使用權(quán)進(jìn)行等待,必須放在同步方法或同步塊里。
②. Sleep使用的時(shí)候,線程并不會(huì)放棄對(duì)象的使用權(quán),即不會(huì)釋放對(duì)象鎖,所以在同步方法或同步塊中使用sleep,一個(gè)線程訪問(wèn)時(shí),其他的線程也是無(wú)法訪問(wèn)的。
而wait是會(huì)釋放對(duì)象鎖的,就是當(dāng)前線程放棄對(duì)象的使用權(quán),讓其他的線程可以訪問(wèn)。
③. 線程執(zhí)行wait方法時(shí),需要另一個(gè)線程調(diào)用notify進(jìn)行喚醒。
而sleep只是暫時(shí)休眠一定時(shí)間,時(shí)間到了之后,自動(dòng)恢復(fù)運(yùn)行,不需另外的線程喚醒。
希望本文所述對(duì)大家的C#程序設(shè)計(jì)有所幫助。
相關(guān)文章
C#創(chuàng)建及訪問(wèn)網(wǎng)絡(luò)硬盤的實(shí)現(xiàn)
本文主要介紹了C#創(chuàng)建及訪問(wèn)網(wǎng)絡(luò)硬盤的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03C# Dynamic之:ExpandoObject,DynamicObject,DynamicMetaOb的應(yīng)用(上)
本篇文章對(duì)C#中ExpandoObject,DynamicObject,DynamicMetaOb的應(yīng)用進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-05-05C#實(shí)現(xiàn)字符串進(jìn)制轉(zhuǎn)換方法匯總
這篇文章主要介紹了C#實(shí)現(xiàn)字符串進(jìn)制轉(zhuǎn)換方法匯總,給大家羅列了十幾種機(jī)制轉(zhuǎn)換問(wèn)題,感興趣的朋友跟隨小編一起看看吧2022-11-11C#/.Net開發(fā)chatGPT、openAI的簡(jiǎn)單步驟
OpenAI處于科技行業(yè)下一件大事件的最前沿,具有初創(chuàng)公司史詩(shī)般的標(biāo)志,下面這篇文章主要給大家介紹了關(guān)于C#/.Net開發(fā)chatGPT和openAI的相關(guān)資料,需要的朋友可以參考下2023-02-02