欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C#中Sleep() 和 Wait()的區(qū)別小結(jié)

 更新時(shí)間:2024年04月15日 09:22:17   作者:那個(gè)那個(gè)魚  
Sleep()和 Wait()是兩個(gè)不同的方法,用于控制線程的執(zhí)行,本文主要介紹了C#中Sleep()和Wait()的區(qū)別小結(jié),具有一定的參考價(jià)值,感興趣的可以了解一下

Sleep() 和 Wait()  是兩個(gè)不同的方法,用于控制線程的執(zhí)行。

Sleep() 方法:

是線程類 Thread 的靜態(tài)方法,它使當(dāng)前線程暫停執(zhí)行一段時(shí)間。

Sleep() 方法接受一個(gè)參數(shù),表示線程暫停的時(shí)間長(zhǎng)度,單位是毫秒。

在暫停期間,線程不會(huì)釋放鎖資源。當(dāng)暫停時(shí)間結(jié)束后,線程會(huì)重新進(jìn)入就緒狀態(tài),等待 CPU 調(diào)度執(zhí)行。

Sleep()  方法可以用于模擬一段時(shí)間的延遲操作。

Wait() 方法:

是 Object 類的實(shí)例方法,它使當(dāng)前線程進(jìn)入等待狀態(tài),直到其他線程調(diào)用相同對(duì)象的 Notify() 或 NotifyAll() 方法喚醒它。

Wait() 方法必須在同步代碼塊或同步方法中調(diào)用,并且會(huì)釋放鎖資源。當(dāng)線程被喚醒后,它會(huì)重新競(jìng)爭(zhēng)鎖資源,并繼續(xù)執(zhí)行。

Wait() 方法通常與Notify() 或 NotifyAll() 方法配合使用,用于實(shí)現(xiàn)線程間的協(xié)作。(Notify:通知)

參考代碼:

using System;
using System.Collections.Generic;
using System.Text;
using System.Threading;
namespace ConsoleApplication1
{
   
    class Program
    {
        static readonly object _locker = new object();
 
        static bool _go;
        static void Main(string[] args)
        {
            new Thread(Work).Start(); //新線程會(huì)被阻塞,因?yàn)開(kāi)go == false
            Console.ReadLine(); //等待用戶輸入
            lock (_locker)
            {
                _go = true; //改變阻塞條件
                Monitor.Pulse(_locker); //通知等待的隊(duì)列。
            }
            Thread.Sleep(1000);
        }
 
        static void Work()
        {
            lock (_locker)
            {
                while (!_go) //只要_go字段是false,就等待。
                    Monitor.Wait(_locker); //在等待的時(shí)候,鎖已經(jīng)被釋放了。
            }
            Console.WriteLine("被喚醒了");
        }
        
    }
}

區(qū)別:

  • Sleep() 是 Thread 線程類的方法,而 Wait() 是 Object 類的方法。
  • Seep() 會(huì)暫停當(dāng)前線程的執(zhí)行一段時(shí)間,而 Wait() 會(huì)使當(dāng)前線程進(jìn)入等待狀態(tài)。
  • Sleep() 不會(huì)釋放鎖資源,而 Wait() 會(huì)釋放鎖資源。
  • Sleep() 不需要被其他線程喚醒,而 Wait() 需要被其他線程調(diào)用相同對(duì)象的 Notify() 或 NotifyAll() 方法喚醒。

需要注意的是,Sleep() 和 Wait() 方法都可能拋出 InterruptedException 異常,需要進(jìn)行異常處理。 

到此這篇關(guān)于C#中Sleep() 和 Wait()的區(qū)別小結(jié)的文章就介紹到這了,更多相關(guān)C# Sleep() Wait()內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 淺談c# 浮點(diǎn)數(shù)計(jì)算

    淺談c# 浮點(diǎn)數(shù)計(jì)算

    本文通過(guò)具體的示例給大家演示了下C#中浮點(diǎn)數(shù)運(yùn)算所遇到的問(wèn)題及解決方法,有需要的小伙伴可以參考下
    2017-09-09
  • .net從服務(wù)器下載文件中文名亂碼解決方案

    .net從服務(wù)器下載文件中文名亂碼解決方案

    這篇文章主要給大家介紹.net中從服務(wù)器下載文件中文名亂碼的解決方案,有需要的朋友可以參考下
    2015-08-08
  • C#實(shí)現(xiàn)批量下載圖片到本地示例代碼

    C#實(shí)現(xiàn)批量下載圖片到本地示例代碼

    這篇文章主要給大家介紹了關(guān)于C#如何實(shí)現(xiàn)批量下載圖片到本地的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用c#具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2018-11-11
  • C#實(shí)現(xiàn)字符串格式化的五種方式

    C#實(shí)現(xiàn)字符串格式化的五種方式

    C#字符串格式化是一種將數(shù)據(jù)插入到預(yù)定義文本模板中創(chuàng)建新字符串的過(guò)程,它允許開(kāi)發(fā)者更方便地控制輸出內(nèi)容的布局和顯示樣式,本文給大家介紹了C#實(shí)現(xiàn)字符串格式化的五種方式,文中通過(guò)代碼示例講解的非常詳細(xì),需要的朋友可以參考下
    2024-07-07
  • 使用C#調(diào)用系統(tǒng)API實(shí)現(xiàn)內(nèi)存注入的代碼

    使用C#調(diào)用系統(tǒng)API實(shí)現(xiàn)內(nèi)存注入的代碼

    使用C#調(diào)用系統(tǒng)API實(shí)現(xiàn)內(nèi)存注入的代碼,學(xué)習(xí)c#的朋友可以參考下。
    2011-06-06
  • C# 10分鐘完成百度人臉識(shí)別(入門篇)

    C# 10分鐘完成百度人臉識(shí)別(入門篇)

    這篇文章主要介紹了C# 10分鐘完成百度人臉識(shí)別(入門篇),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-02-02
  • C#加載嵌入到資源的非托管dll

    C#加載嵌入到資源的非托管dll

    很多朋友遇到過(guò)這樣一個(gè)問(wèn)題需要加載非win32的非托管dll,糾結(jié)該怎么操作呢,下面通過(guò)代碼給大家介紹下C#加載嵌入到資源的非托管dll的方法,感興趣的朋友一起看看吧
    2021-05-05
  • 關(guān)于c#中單例模式的一些問(wèn)題

    關(guān)于c#中單例模式的一些問(wèn)題

    這篇文章主要給大家介紹了關(guān)于c#中單例模式的一些問(wèn)題,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • 使用Deflate算法對(duì)文件進(jìn)行壓縮與解壓縮的方法詳解

    使用Deflate算法對(duì)文件進(jìn)行壓縮與解壓縮的方法詳解

    本篇文章是對(duì)使用Deflate算法對(duì)文件進(jìn)行壓縮和解壓縮的方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06
  • C#圖書管理系統(tǒng) 附源碼下載

    C#圖書管理系統(tǒng) 附源碼下載

    這篇文章主要為大家詳細(xì)介紹了C#圖書管理系統(tǒng),文章中附源碼下載,示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-09-09

最新評(píng)論