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

首頁 > 編程 > C# > 正文

解析使用C# lock同時訪問共享數據

2020-01-24 03:14:52
字體:
來源:轉載
供稿:網友
經常碰到同時需要對某個數據進行操作,或者對某個文件進行讀寫操作,對于這些操作我們以前往往不能很好的進行處理,自從C#語言中引入了lock這個關鍵字,以上問題就比較容易予以解決了,下面就是一段簡單的代碼。
復制代碼 代碼如下:

public class AccessControl()
{
    private static object privateObjectLock = new object();
    public static AccessResult()
    {
       lock(privateObjectLock)
       {
         //數據操作語句
       }
    }
}

=====================================================
C#多線程中lock的用法
在做郵箱接收網關的時候遇到了以下的需求,要求為每一個郵箱開啟一個接收線程,從POP3服務器上收取,然后將郵件存放到統一的FTP服務器上,要求郵件按收接順充從1開始順充編號。
我實現的方法為,為每個郵箱new出實例,然后分別賦給POP3郵箱地址,用戶名,密碼等參數。這里涉及到一個編號同步的問題,因為每個接收郵件的線程都是自己執行,所以取得編號并且遞增這個動作是互斥的。
以一個靜態變量表示編號如下
復制代碼 代碼如下:

class EmailInfo
{
   public static int CurrentNumber;
}

那在當前線程取得這個步驟為
復制代碼 代碼如下:

_CurrentNumber=++EmailInfo.CurrentNumber;

雖然此為一句,但在計算機運行時卻分為多步,如下
EmialInfo.CurrentNumber加1--EmailInfo.CurrentNumber返回值給_CurrentNumber
,也許線程1執行了EmailInfo.CurrentNumber加1 的操作,但還沒有取得返回值,此時線程2又執行了EmailInfo.CurrentNumber加1的操作,然后又線程1,線程2取得了返回值就是一樣的,這樣就失去了按順序遞增的作用。
此時查找了網上有關線程同步的方法,其實用lock語句鎖住遞增的那一段即可。而介紹的相關用法為
復制代碼 代碼如下:

lock(this)
{
   _CurrentNumber=++EmailInfo.CurrentNumber;
}

本以為這樣就可以成功,誰知道還是無效,反復查找才發現沒弄清楚lock的用法。因為網上所講的資料,舉的例子比較簡單,是直接new 出一個對像,然后為對像的一個函數創建了多個線程運行,所以它的同步只要lock住this即它自己就行了。因為此時只有一個實例在運,而我是new 出了多個對像,lock住每個自己的實例所以當然無效。

所以自然想了一個解決方法,就lock住相同的一個實例就行了。因為我每個郵件接收線程的參數都是不同的,所以還是new出幾個實像,但lock的方法改為如下
先為EmailInfo加一個靜態變量
復制代碼 代碼如下:

class EmailInfo
{
   public static object syncRoot = new object();
   public static int CurrentNumber;
}

然后lock改為
復制代碼 代碼如下:

lock(EmailInfo.syncRoot)
{
   _CurrentNumber=++EmailInfo.CurrentNumber;
}

即可實現想要的效果了。
寫出來之后發現原來是件很簡單的事,就是lock住一個大家都共同訪問的(靜態static的)東東就行了,但這個卻搞了我很長時間。究其原因對所查資料沒有認真理解,拿來就用,以為什么都懂,其實不然。
我想可能有初學者也會犯類似的錯誤,所以寫出來以求共勉。歡迎學習C#或工作中用到C#的朋友與我交流
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美性资源免费| 亚洲第一天堂无码专区| 久久久久亚洲精品成人网小说| 久久精品国产成人精品| 精品自拍视频在线观看| 81精品国产乱码久久久久久| 日韩成人av一区| 欧美猛少妇色xxxxx| 日韩亚洲国产中文字幕| 日韩免费精品视频| y97精品国产97久久久久久| 久久青草精品视频免费观看| 91在线播放国产| 亚洲成年人在线播放| 一本一道久久a久久精品逆3p| 日韩a**站在线观看| 亚洲精品国产精品国自产在线| 日韩电影网在线| 欧美天天综合色影久久精品| 成人免费福利视频| 欧美床上激情在线观看| 久久天天躁狠狠躁夜夜av| 人人爽久久涩噜噜噜网站| 97在线免费观看视频| 欧美另类69精品久久久久9999| 久久久国产一区| 亚洲精品v天堂中文字幕| 欧美激情精品久久久久久变态| 日韩在线www| 亚洲精品欧美日韩| 国产精品自产拍高潮在线观看| 欧美电影在线播放| 日韩免费观看高清| 欧美激情欧美激情| 久久99精品国产99久久6尤物| 亚洲欧美精品伊人久久| 久久99热这里只有精品国产| 亚洲国模精品一区| 亚洲国产91色在线| 国产激情久久久久| 欧美夜福利tv在线| 久久伊人91精品综合网站| 久久久国产一区二区三区| 久久的精品视频| 亚洲黄色有码视频| 亚洲香蕉成人av网站在线观看| 日韩在线中文字幕| 91精品成人久久| 欧美在线视频一区二区| 亚洲最大的网站| 欧美理论电影网| 91天堂在线观看| 精品亚洲aⅴ在线观看| 中文字幕精品网| 久久久久九九九九| 精品国偷自产在线视频99| 亚洲天堂男人天堂| 欧美激情xxxx性bbbb| 欧美有码在线观看| 97超碰色婷婷| 国产成人亚洲综合91| 亚洲欧美日韩高清| 亚洲国内高清视频| 亚洲欧美国产一本综合首页| 欧美日韩精品在线视频| 国产精品91在线观看| 久久久久久噜噜噜久久久精品| 国产自摸综合网| 欧美精品免费在线观看| 91成人天堂久久成人| 久久久999精品| 日韩免费av片在线观看| 亚洲午夜av久久乱码| 国产亚洲欧美另类中文| 亚洲免费精彩视频| 大量国产精品视频| 欧美激情国产日韩精品一区18| 久久久久久久久久久免费精品| 久久久精品一区二区三区| 97国产一区二区精品久久呦| 亚洲国产成人精品久久久国产成人一区| 国产精品999| 欧美国产日韩一区二区| 国产精品自拍视频| 日韩欧美精品中文字幕| 97视频在线观看免费高清完整版在线观看| 中文字幕亚洲一区| 久久国产精品久久久久久| 亚洲视频一区二区三区| 亚洲 日韩 国产第一| 国产欧美日韩中文字幕在线| 国产一区二区激情| 亚洲免费小视频| 日韩精品在线播放| 欧美激情精品在线| 亚洲国产欧美自拍| 欧美大秀在线观看| 中文字幕亚洲欧美日韩2019| 国产精品女人网站| 成人h视频在线观看播放| 日韩欧美成人网| 在线视频日韩精品| www.国产一区| 国产一区二区三区直播精品电影| 欧美国产乱视频| 亚洲影院色在线观看免费| 91人人爽人人爽人人精88v| 777777777亚洲妇女| 亚洲美女动态图120秒| 欧美日韩中文字幕综合视频| 国产精品一香蕉国产线看观看| 久久精品国产亚洲一区二区| 欧美亚洲午夜视频在线观看| 久久黄色av网站| 亚洲一区二区在线播放| 日韩av中文字幕在线| 成人国产精品色哟哟| 亚洲在线观看视频| 欧美日韩美女在线观看| 亚洲欧美制服中文字幕| 欧美极度另类性三渗透| 亚洲精品福利资源站| 日韩中文字幕精品| 欧美做爰性生交视频| 国产91久久婷婷一区二区| 亚洲一区精品电影| 午夜精品美女自拍福到在线| 欧美大片大片在线播放| 亚洲成avwww人| 日韩欧美黄色动漫| 一本一本久久a久久精品牛牛影视| 国产亚洲精品日韩| 国产亚洲欧美日韩美女| 欧美电影免费播放| 欧美乱大交做爰xxxⅹ性3| 少妇精69xxtheporn| 最新91在线视频| 国产精品自产拍高潮在线观看| 久久免费视频在线观看| 日韩av大片免费看| 欧美特级www| 国产精品视频成人| 国产精品久久久久久久久久久久| 亚洲欧美国产日韩天堂区| 最好看的2019的中文字幕视频| 成人黄色片在线| 亚洲级视频在线观看免费1级| 欧美日韩国产在线看| 日韩中文字幕国产| 欧美成人午夜激情| 日韩精品在线视频| 精品毛片网大全| 日本精品久久久久久久| 亚洲人成网站在线播| 久久久综合av| 青青草国产精品一区二区| 成人国产精品一区| 51久久精品夜色国产麻豆| 久久久久国色av免费观看性色| 国产精品网站入口| 亚洲免费影视第一页| 亚洲全黄一级网站| 欧美中文字幕视频在线观看| 成人亚洲欧美一区二区三区|