最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

淺析c# 線程同步

 更新時間:2020年08月28日 16:10:15   作者:初生不惑  
這篇文章主要介紹了c# 線程同步的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)c#,感興趣的朋友可以了解下

同步是一種只允許一個線程在特定時間訪問某些資源的技術(shù)。沒有其他線程可以中斷,直到所分配的線程或當(dāng)前訪問線程訪問數(shù)據(jù)完成其任務(wù)。

在多線程程序中,允許線程訪問任何資源所需的執(zhí)行時間。線程共享資源并異步執(zhí)行。 訪問共享資源(數(shù)據(jù))是有時可能會暫停系統(tǒng)的關(guān)鍵任務(wù)。所以可以通過線程同步來處理它。

主要場景如:存款,取款等交易業(yè)務(wù)處理。

線程同步的優(yōu)點

  • 一致性維護(hù)
  • 無線程干擾

C#鎖定

使用 C# lock關(guān)鍵字同步執(zhí)行程序。它用于為當(dāng)前線程鎖定,執(zhí)行任務(wù),然后釋放鎖定。它確保其他線程在執(zhí)行完成之前不會中斷執(zhí)行。

下面,創(chuàng)建兩個非同步和同步的例子。

C# 示例:非同步

在這個例子中,我們不使用鎖。此示例異步執(zhí)行。換句話說,線程之間存在上下文切換。

using System;
using System.Threading;
class Printer
{
  public void PrintTable()
  {
    for (int i = 1; i <= 5; i++)
    {
      Thread t = Thread.CurrentThread;
      Thread.Sleep(200);
      Console.WriteLine(t.Name+" "+i);
    }
  }
}
class Program
{
  public static void Main(string[] args)
  {
    Printer p = new Printer();
    Thread t1 = new Thread(new ThreadStart(p.PrintTable));
    Thread t2 = new Thread(new ThreadStart(p.PrintTable));
    t1.Name = "Thread 1 :";
    t2.Name = "Thread 2 :";
    t1.Start();
    t2.Start();
  }
}

執(zhí)行上面示例代碼,可以看到以下輸出結(jié)果 -

Thread 2 : 1
Thread 1 : 1
Thread 2 : 2
Thread 1 : 2
Thread 2 : 3
Thread 1 : 3
Thread 2 : 4
Thread 1 : 4
Thread 2 : 5
Thread 1 : 5

C# 線程同步示例

在這個例子中,我們使用lock塊,因此示例同步執(zhí)行。 換句話說,線程之間沒有上下文切換。在輸出部分,可以看到第二個線程在第一個線程完成任務(wù)之后開始執(zhí)行。

using System;
using System.Threading;
class Printer
{
  public void PrintTable()
  {
    lock (this)
    {
      for (int i = 1; i <= 5; i++)
      {
        Thread t = Thread.CurrentThread;
        Thread.Sleep(100);
        Console.WriteLine(t.Name + " " + i);
      }
    }
  }
}
class Program
{
  public static void Main(string[] args)
  {
    Printer p = new Printer();
    Thread t1 = new Thread(new ThreadStart(p.PrintTable));
    Thread t2 = new Thread(new ThreadStart(p.PrintTable));
    t1.Name = "Thread 1 :";
    t2.Name = "Thread 2 :";
    t1.Start();
    t2.Start();
  }
}

執(zhí)行上面示例代碼,可以看到以下輸出結(jié)果 -

Thread 1 : 1
Thread 1 : 2
Thread 1 : 3
Thread 1 : 4
Thread 1 : 5
Thread 2 : 1
Thread 2 : 2
Thread 2 : 3
Thread 2 : 4
Thread 2 : 5

以上就是淺析c# 線程同步的詳細(xì)內(nèi)容,更多關(guān)于c# 線程同步的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 簡單的excel導(dǎo)入導(dǎo)出示例分享

    簡單的excel導(dǎo)入導(dǎo)出示例分享

    這篇文章主要介紹了簡單的excel導(dǎo)入導(dǎo)出示例分享,需要的朋友可以參考下
    2014-03-03
  • C#中sleep和wait的區(qū)別分析

    C#中sleep和wait的區(qū)別分析

    這篇文章主要介紹了C#中sleep和wait的區(qū)別分析,有助于深入理解C#中線程的原理與使用技巧,非常具有實用價值,需要的朋友可以參考下
    2015-04-04
  • winform 使用Anchor屬性進(jìn)行界面布局的方法詳解

    winform 使用Anchor屬性進(jìn)行界面布局的方法詳解

    這篇文章主要介紹了winform 使用Anchor屬性進(jìn)行界面布局的方法,有需要的朋友可以參考一下
    2013-12-12
  • c#關(guān)于JWT跨域身份驗證的實現(xiàn)代碼

    c#關(guān)于JWT跨域身份驗證的實現(xiàn)代碼

    這篇文章主要介紹了c#關(guān)于JWT跨域身份驗證的實現(xiàn)代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-10-10
  • C#托管內(nèi)存與非托管內(nèi)存之間的轉(zhuǎn)換的實例講解

    C#托管內(nèi)存與非托管內(nèi)存之間的轉(zhuǎn)換的實例講解

    在本篇文章里小編給大家整理了關(guān)于C#托管內(nèi)存與非托管內(nèi)存之間的轉(zhuǎn)換的實例以及相關(guān)知識點,需要的朋友們學(xué)習(xí)下。
    2019-08-08
  • 詳解C#中SqlParameter的作用與用法

    詳解C#中SqlParameter的作用與用法

    本篇文章主要介紹了C#中SqlParameter的作用與用法,因為通過SQL語句的方式,有時候存在腳本注入的危險,所以在大多數(shù)情況下不建議用拼接SQL語句字符串方式,希望通過SqlParameter實現(xiàn)來實現(xiàn)對數(shù)據(jù)的操作。
    2016-12-12
  • C#中委托和事件的區(qū)別實例解析

    C#中委托和事件的區(qū)別實例解析

    這篇文章主要介紹了C#中委托和事件的區(qū)別,并分別以實例形式展示了通過委托執(zhí)行方法與通過事件執(zhí)行方法,以及相關(guān)的執(zhí)行流程與原理分析,需要的朋友可以參考下
    2014-09-09
  • C#調(diào)用打印機(jī)實現(xiàn)打印

    C#調(diào)用打印機(jī)實現(xiàn)打印

    這篇文章介紹了C#調(diào)用打印機(jī)實現(xiàn)打印的方法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-04-04
  • 解析OpenXml?Pptx的邊框虛線轉(zhuǎn)為WPF的邊框虛線問題

    解析OpenXml?Pptx的邊框虛線轉(zhuǎn)為WPF的邊框虛線問題

    這篇文章主要介紹了OpenXml?Pptx的邊框虛線轉(zhuǎn)為WPF的邊框虛線,在文中用PPTX的7種直線,分別設(shè)置7種能夠設(shè)置的虛線類型,具體實例代碼跟隨小編一起看看吧
    2021-12-12
  • 深入理解C#中的擴(kuò)展方法

    深入理解C#中的擴(kuò)展方法

    下面這篇文章主要給大家介紹了關(guān)于c#中擴(kuò)展方法的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),供大家學(xué)習(xí)參考,感興趣的朋友可以了解下
    2020-06-06

最新評論

彰化县| 家居| 鹰潭市| 拉孜县| 当涂县| 苍山县| 鲁山县| 鲁山县| 伊宁县| 清河县| 油尖旺区| 铁岭县| 涿州市| 平江县| 上饶市| 神池县| 沐川县| 南汇区| 肃北| 北辰区| 梅州市| 贵德县| 汉寿县| 乐至县| 祁门县| 密山市| 汪清县| 晋江市| 武平县| 兴宁市| 莆田市| 固镇县| 普兰店市| 绍兴县| 乌兰浩特市| 庄河市| 响水县| 胶南市| 湾仔区| 伊吾县| 安福县|