亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C# > 正文

描述C#多線程中lock關鍵字的使用分析

2020-01-24 03:14:52
字體:
來源:轉載
供稿:網友
本文介紹C# lock關鍵字,C#提供了一個關鍵字lock,它可以把一段代碼定義為互斥段(critical section),互斥段在一個時刻內只允許一個線程進入執行,而其他線程必須等待。
每個線程都有自己的資源,但是代碼區是共享的,即每個線程都可以執行相同的函數。這可能帶來的問題就是幾個線程同時執行一個函數,導致數據的混亂,產生不可預料的結果,因此我們必須避免這種情況的發生。
C#提供了一個關鍵字lock,它可以把一段代碼定義為互斥段(critical section),互斥段在一個時刻內只允許一個線程進入執行,而其他線程必須等待。在C# lock關鍵字定義如下:
lock(expression) statement_block
expression代表你希望跟蹤的對象,通常是對象引用。
如果你想保護一個類的實例,一般地,你可以使用this;如果你想保護一個靜態變量(如互斥代碼段在一個靜態方法內部),一般使用類名就可以了。
而statement_block就是互斥段的代碼,這段代碼在一個時刻內只可能被一個線程執行。
下面是一個使用C# lock關鍵字的典型例子,在注釋里說明了C# lock關鍵字的用法和用途。
示例如下:
復制代碼 代碼如下:

using System;
using System.Threading;
namespace ThreadSimple
{
    internal class Account
    {
        int balance; //余額
        Random r=new Random();
        internal Account(int initial) 
        { 
            balance=initial;
        }
        internal int Withdraw(int amount) //取回、取款
        {
            if(balance<0)
            { 
                //如果balance小于0則拋出異常 
                throw new Exception("NegativeBalance");//負的 余額
            }
            //下面的代碼保證在當前線程修改balance的值完成之前
            //不會有其他線程也執行這段代碼來修改balance的值 
            //因此,balance的值是不可能小于0的 
            lock(this) 
            {
                Console.WriteLine("CurrentThread:"+Thread.CurrentThread.Name);
                //如果沒有lock關鍵字的保護,那么可能在執行完if的條件判斷(成立)之后 
                //另外一個線程卻執行了balance=balance-amount修改了balance的值
                //而這個修改對這個線程是不可見的,所以可能導致這時if的條件已經不成立了
                //但是,這個線程卻繼續執行 balance=balance-amount,所以導致balance可能小于0
                if(balance>=amount)
                {
                    Thread.Sleep(5);
                    balance=balance-amount;
                    return  amount;
                }  else
                {
                    return 0;
                    //transactionrejected
                }
            } 
        }
        internal void DoTransactions()//取款事務
        {
            for (int i = 0; i < 100; i++)
            {
                Withdraw(r.Next(-50, 100));
            }
        }
    }  
    internal class Test 
    { 
        static internal Thread[] threads=new Thread[10];
        public static void Main() 
        { 
            Account acc=new Account(0);
            for(int i=0;i<10;i++)
            { 
                Thread t=new Thread(new ThreadStart(acc.DoTransactions));
                threads[i]=t;
            }
            for (int i = 0; i < 10; i++)
            {
                threads[i].Name = i.ToString();
            }
            for (int i = 0; i < 10; i++)
            {
                threads[i].Start();
                Console.ReadLine();
            }
        }
    }
}

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩国产中文字幕| 亚洲图片制服诱惑| 国产在线a不卡| 久久久久久久久国产精品| 亚洲精品av在线播放| 国产成人高潮免费观看精品| 亚洲午夜未满十八勿入免费观看全集| 日韩在线国产精品| 国产视频精品在线| 亚洲第一免费播放区| 久久激情视频久久| 欧美老女人在线视频| 亚洲女人被黑人巨大进入| 国产福利精品在线| 中文字幕日韩欧美精品在线观看| 91人人爽人人爽人人精88v| 欧美在线亚洲一区| 中文字幕欧美日韩精品| 91sao在线观看国产| 久久精品国产亚洲| 欧美午夜xxx| 欧美黄色免费网站| 久久精品成人欧美大片古装| 国产欧美日韩视频| 成人网在线免费观看| 久久精品国产亚洲精品2020| 丝袜美腿精品国产二区| 国产美女扒开尿口久久久| 欧美日韩一区二区三区| 最近2019年中文视频免费在线观看| 国产精品羞羞答答| 亚洲欧洲国产伦综合| 夜夜狂射影院欧美极品| 亚洲乱码一区二区| 7777kkkk成人观看| 国内精品美女av在线播放| 精品人伦一区二区三区蜜桃网站| 黄色一区二区三区| 久久视频这里只有精品| 91深夜福利视频| 亚洲国产欧美日韩精品| 国产成人精品视频在线观看| 久久精品最新地址| 成人免费激情视频| 性色av一区二区三区在线观看| 国产福利精品视频| 欧美乱大交做爰xxxⅹ性3| 久久国产精品99国产精| 亚洲电影av在线| 伊人久久大香线蕉av一区二区| 日韩中文字幕第一页| 国产999精品视频| 国产精品一区二区三区久久| 亚洲欧美日韩精品久久奇米色影视| 久久99精品久久久久久青青91| 中文字幕不卡在线视频极品| 97久久精品人搡人人玩| 亚洲第一av在线| 最新亚洲国产精品| 亚洲视频999| 欧美午夜久久久| 久久久久久久一| 91tv亚洲精品香蕉国产一区7ujn| 亚洲性夜色噜噜噜7777| 欧美成人四级hd版| 中文字幕日韩综合av| 在线观看国产欧美| 国产精自产拍久久久久久蜜| 97香蕉超级碰碰久久免费的优势| 久久不射热爱视频精品| 欧美激情视频网站| 青青久久av北条麻妃黑人| 日韩在线播放av| 97国产suv精品一区二区62| 91久久精品美女高潮| 欧美电影在线观看| 97超级碰碰碰久久久| 久久777国产线看观看精品| 久久99精品视频一区97| 成人精品久久一区二区三区| 欧美福利小视频| 国产精品十八以下禁看| 国产亚洲福利一区| 日韩美女中文字幕| 日韩欧美aⅴ综合网站发布| 最近2019年中文视频免费在线观看| 亚洲天堂av在线免费| 亚洲一区第一页| 欧美精品日韩www.p站| 欧美成人四级hd版| 亚洲最大成人网色| 欧美wwwwww| 精品久久久香蕉免费精品视频| 国产99久久久欧美黑人| 亚洲一区二区在线播放| 欧美在线观看日本一区| 国产精品大陆在线观看| 欧美性猛xxx| 国产亚洲精品久久久优势| 亚洲第一区第二区| 亚洲精品永久免费精品| 日本欧美国产在线| 久久精品福利视频| 欧美激情一区二区三区高清视频| 日韩精品在线免费观看| 国产精品激情自拍| 91精品啪aⅴ在线观看国产| www.久久撸.com| 成人黄色片网站| 亚洲第一页中文字幕| 国产综合久久久久| 久久激情视频免费观看| 久久国产精品影片| 热re91久久精品国99热蜜臀| 国产999精品| 久99九色视频在线观看| 91网站免费观看| 欧美日韩亚洲一区二区| 亚洲福利视频久久| 亚洲欧洲黄色网| 91免费福利视频| 久久久久久久久久久av| 一区二区三区四区在线观看视频| 欧美视频一区二区三区…| 国产精品夜间视频香蕉| 国产精品大陆在线观看| 欧美一区第一页| 国产在线观看一区二区三区| 欧美电影在线观看网站| 欧美激情中文字幕乱码免费| 欧美另类精品xxxx孕妇| 日韩亚洲欧美中文在线| 亚洲高清福利视频| 日韩成人激情视频| 2020国产精品视频| 久久国产精品首页| 国产性猛交xxxx免费看久久| 色中色综合影院手机版在线观看| 久久久久日韩精品久久久男男| 精品亚洲一区二区| 国产精品美女主播在线观看纯欲| 久久天天躁狠狠躁夜夜av| 97在线视频免费观看| 亚洲精品日韩激情在线电影| 亚洲激情 国产| 日韩电影免费在线观看| 亚洲日韩中文字幕| 久久夜色精品亚洲噜噜国产mv| 欧美大片大片在线播放| 国精产品一区一区三区有限在线| 亚洲欧美日韩一区二区在线| 日韩精品极品毛片系列视频| 成人久久一区二区三区| 亚洲xxx自由成熟| 久久久久一本一区二区青青蜜月| 欧美洲成人男女午夜视频| 日韩欧美一区二区在线| 欧美激情三级免费| 国产精品福利网| 日本亚洲欧洲色α| 国产免费一区二区三区在线观看| 亚洲福利视频网站| 久久婷婷国产麻豆91天堂| 亚洲自拍欧美另类|