国产精品久久久久久久久久久新郎_91久久精品国产_国内精品久久久久久_欧美激情第一页在线观看_国产欧美日韩丝袜精品一区_日韩精品成人一区二区在线观看_国产精品v片在线观看不卡_91精品国产综合久久香蕉最新版 _国产精品亚洲激情_色综合男人天堂

始創于2000年 股票代碼:831685
咨詢熱線:0371-60135900 注冊有禮 登錄
  • 掛牌上市企業
  • 60秒人工響應
  • 99.99%連通率
  • 7*24h人工
  • 故障100倍補償
您的位置: 網站首頁 > 幫助中心>文章內容

細說多線程(八) —— 計時器與鎖

發布時間:  2012/9/16 6:40:51

目錄

一、線程的定義

二、線程的基礎知識

三、以ThreadStart方式實現多線程

四、CLR線程池的工作者線程

五、CLR線程池的I/O線程

六、異步 SqlCommand

七、并行編程與PLINQ

八、計時器與鎖

 

八、定時器與鎖

8.1定時器

若要長期定時進行一些工作,比如像郵箱更新,實時收聽信息等等,可以利用定時器Timer進行操作。
在System.Threading命名空間中存在Timer類與對應的TimerCallback委托,它可以在后臺線程中執行一些長期的定時操作,使主線程不受干擾。
Timer類中最常用的構造函數為 public Timer( timerCallback , object , int , int )
timerCallback委托可以綁定執行方法,執行方法必須返回void,它可以是無參數方法,也可以帶一個object參數的方法。
第二個參數是為 timerCallback 委托輸入的參數對象。
第三個參數是開始執行前等待的時間。
第四個參數是每次執行之間的等待時間。

開發實例

     class Program
     {
         static void Main(string[] args)
         {
             ThreadPool.SetMaxThreads(1000, 1000);
 
             TimerCallback callback = new TimerCallback(ThreadPoolMessage);
             Timer t = new Timer(callback,"Hello Jack! ", 0, 1000);
             Console.ReadKey();
         }
 
         //顯示線程池現狀
static void ThreadPoolMessage(object data) { int a, b; ThreadPool.GetAvailableThreads(out a, out b); string message = string.Format("{0}\n CurrentThreadId is:{1}\n" + " CurrentThread IsBackground:{2}\n" + " WorkerThreads is:{3}\n CompletionPortThreads is:{4}\n", data + "Time now is " + DateTime.Now.ToLongTimeString(), Thread.CurrentThread.ManagedThreadId, Thread.CurrentThread.IsBackground.ToString(), a.ToString(), b.ToString()); Console.WriteLine(message); } }

注意觀察運行結果,每次調用Timer綁定的方法時不一定是使用同一線程,但線程都會是來自工作者線程的后臺線程。


8.2 鎖

在使用多線程開發時,存在一定的共用數據,為了避免多線程同時操作同一數據,.NET提供了lock、Monitor、Interlocked等多個鎖定數據的方式。

8.2.1 lock

lock的使用比較簡單,如果需要鎖定某個對象時,可以直接使用lock(this)的方式。

1 private void Method()
2 {
3       lock(this)
4       {
5           //在此進行的操作能保證在同一時間內只有一個線程對此對象操作
6 } 7 }

如果操作只鎖定某段代碼,可以事先建立一個object對象,并對此對象進行操作鎖定,這也是.net提倡的鎖定用法。

 class Control
 {
       private object obj=new object();
       
       public void Method()
       {
             lock(obj)
             {.......}
       }
 }

 

8.2.2 Montior

Montior存在于System.Thread命名空間內,相比lock,Montior使用更靈活。
它存在 Enter, Exit 兩個方法,它可以對對象進行鎖定與解鎖,比lock使用更靈活。

 1 class Control
 2 {
 3       private object obj=new object();
 4  
 5       public void Method()
 6       {
 7             Monitor.Enter(obj);
 8             try
 9             {......}
10             catch(Excetion ex)
11             {......}
12             finally
13             {
14                 Monitor.Exit(obj);
15             }
16       }
17 }
18          

使用try的方式,能確保程序不會因死鎖而釋放出異常!
而且在finally中釋放obj對象能夠確保無論是否出現死鎖狀態,系統都會釋放obj對象。
而且Monitor中還存在Wait方法可以讓線程等待一段時間,然后在完成時使用Pulse、PulseAll等方法通知等待線程。

 

8.2.3 Interlocked

Interlocked存在于System.Thread命名空間內,它的操作比Monitor使用更簡單。
它存在CompareExchange、Decrement、Exchange、Increment等常用方法讓參數在安全的情況進行數據交換。

Increment、Decrement 可以使參數安全地加1或減1并返回遞增后的新值。

 class Example
 {
       private int a=1;
 
       public void AddOne()
       {
              int newA=Interlocked.Increment(ref a);
       }
 }

Exchange可以安全地變量賦值。

1 public void SetData()
2 {
3       Interlocked.Exchange(ref a,100);
4 }

CompareExchange使用特別方便,它相當于if的用法,當a等于1時,則把100賦值給a。

 public void CompareAndExchange()
 {
     Interlocked.CompareExchange(ref a,100,1);
 }



結束語

熟悉掌握多線程開發,對提高系統工作效率非常有幫助,尤其是回調方法與最近火熱的并行編程更應該引起各位的重視。
在下用了較長的時間總結所過的多線程開發方式,希望本篇文章能對各位的學習研究有所幫助,當中有所錯漏的地方敬請點評。

億恩-天使(QQ:530997) 電話 037160135991 服務器租用,托管歡迎咨詢


本文出自:億恩科技【www.czbl888.cn】

服務器租用/服務器托管中國五強!虛擬主機域名注冊頂級提供商!15年品質保障!--億恩科技[ENKJ.COM]

  • 您可能在找
  • 億恩北京公司:
  • 經營性ICP/ISP證:京B2-20150015
  • 億恩鄭州公司:
  • 經營性ICP/ISP/IDC證:豫B1.B2-20060070
  • 億恩南昌公司:
  • 經營性ICP/ISP證:贛B2-20080012
  • 服務器/云主機 24小時售后服務電話:0371-60135900
  • 虛擬主機/智能建站 24小時售后服務電話:0371-60135900
  • 專注服務器托管17年
    掃掃關注-微信公眾號
    0371-60135900
    Copyright© 1999-2019 ENKJ All Rights Reserved 億恩科技 版權所有  地址:鄭州市高新區翠竹街1號總部企業基地億恩大廈  法律顧問:河南亞太人律師事務所郝建鋒、杜慧月律師   京公網安備41019702002023號
      0
     
     
     
     

    0371-60135900
    7*24小時客服服務熱線

     
     
    国产精品久久久久久久久久久新郎_91久久精品国产_国内精品久久久久久_欧美激情第一页在线观看_国产欧美日韩丝袜精品一区_日韩精品成人一区二区在线观看_国产精品v片在线观看不卡_91精品国产综合久久香蕉最新版 _国产精品亚洲激情_色综合男人天堂
    日韩精品无码一区二区三区免费| 日本成人黄色网| 性欧美极品xxxx欧美一区二区| 国产精品久久久久久久久电影网| 国产精品999.| 欧美一级小视频| 在线观看免费av网址| 亚洲77777| 日本特黄a级片| 九九热免费在线观看| 亚洲一级片网站| mm131国产精品| 99久久99精品| 亚洲自拍偷拍一区二区三区| 中文字幕av久久| 国产精品videossex国产高清| 欧美乱做爰xxxⅹ久久久| 国产www免费| 春日野结衣av| 国语对白做受xxxxx在线中国| 久热免费在线观看| 日本特黄a级片| 亚洲热在线视频| 欧美a级免费视频| 日本福利视频在线| 天堂社区在线视频| 特级黄色片视频| 日韩中文字幕亚洲精品欧美| www插插插无码免费视频网站| 久久精品视频16| 手机在线免费观看毛片| 三日本三级少妇三级99| 国产精品视频一二三四区| 欧美日韩精品在线一区二区 | 91视频成人免费| 欧美又粗又长又爽做受| 91九色在线观看视频| 黄色片一级视频| 三级性生活视频| 性一交一乱一伧国产女士spa| 日韩人妻精品无码一区二区三区| 午夜激情av在线| 97在线免费视频观看| 国产91在线视频观看| 午夜精品中文字幕| 日韩精品一区二区免费| 欧美黄色一级片视频| 网站在线你懂的| 霍思燕三级露全乳照| 视频二区在线播放| 国产片侵犯亲女视频播放| 国产免费视频传媒| 成人性做爰片免费视频| 国产91对白刺激露脸在线观看| 欧美成人乱码一二三四区免费| 日韩人妻无码精品久久久不卡| 国产精品视频分类| 青青青在线视频播放| 国产小视频精品| 亚洲 欧美 综合 另类 中字| 69久久久久久| 日本xxxxxxxxxx75| 亚洲男人天堂2021| 逼特逼视频在线| 妞干网这里只有精品| 亚洲色图38p| 日韩av中文字幕第一页| 污色网站在线观看| jizzjizz国产精品喷水| 韩国黄色一级大片| 亚洲 激情 在线| 久久久久久久久久久视频| 麻豆md0077饥渴少妇| 三级在线免费看| 国产精品12345| 成人在线免费观看网址| 深夜黄色小视频| 免费在线观看日韩视频| 日本高清视频免费在线观看| 国产日韩欧美久久| 久热免费在线观看| 男人日女人视频网站| 激情成人在线观看| 国产精品拍拍拍| 久久美女福利视频| 久久久久久久久久网| 日韩中文字幕在线不卡| 亚洲自拍第三页| 永久免费的av网站| 亚洲一区二区蜜桃| 1024精品视频| 日韩欧美一区三区| 欧美 日韩 亚洲 一区| 精品视频在线观看一区二区| 懂色av一区二区三区四区五区| 不卡的av中文字幕| 无需播放器的av| 91视频免费版污| 亚洲国产精品久久久久爰色欲| 国产亚洲黄色片| 男人天堂av片| 精品丰满人妻无套内射| 国产片侵犯亲女视频播放| 日韩视频一二三| 日韩视频在线免费播放| 加勒比av中文字幕| 91欧美视频在线| 国产91色在线观看| 亚洲欧洲日本精品| 中文字幕22页| 日韩视频在线观看一区二区三区| 亚洲视频第二页| 欧美午夜精品理论片| 伊人免费视频二| 手机福利在线视频| 日韩不卡视频一区二区| www.18av.com| av网站大全免费| 欧美s码亚洲码精品m码| 免费成人在线视频网站| 黑人糟蹋人妻hd中文字幕| 免费在线激情视频| www.超碰com| 在线观看免费不卡av| 天天久久综合网| 超级碰在线观看| 日韩av高清在线看片| 中文字幕日本最新乱码视频| 日本在线观看a| 鲁一鲁一鲁一鲁一av| 日韩 国产 一区| 国产成人一二三区| www黄色日本| 欧美黄色性生活| 日韩欧美中文视频| 无码熟妇人妻av在线电影| 亚洲国产精品成人天堂| 成人在线免费在线观看| 亚洲色图 在线视频| 97人人模人人爽人人澡| 久久亚洲国产成人精品无码区| 熟女少妇在线视频播放| 波多野结衣天堂| a级网站在线观看| 青青青免费在线| www亚洲成人| 国产爆乳无码一区二区麻豆| 怡红院av亚洲一区二区三区h| 性欧美videossex精品| 国产日韩第一页| 丰满少妇被猛烈进入高清播放| 一区二区在线免费看| a级片一区二区| 动漫av免费观看| 最新黄色av网站| 欧美日韩亚洲一| 久久精品久久99| 精品国产免费av| 手机在线视频一区| 波多野结衣家庭教师在线| 亚洲一区在线不卡| 91精品一区二区三区四区| 国模吧无码一区二区三区| 亚洲综合激情视频| 国产成人在线小视频| 四季av一区二区| www.欧美黄色| 亚洲综合婷婷久久| 日本在线xxx| 久久久精品视频国产| 日韩中文字幕三区| 在线观看18视频网站| www.日日操| 91动漫在线看| 性鲍视频在线观看| 精品久久久久久久无码| 国产成人永久免费视频| 国产三级国产精品国产专区50| 欧美男女爱爱视频| 五月天六月丁香| 天天操天天爽天天射| 东北少妇不带套对白| 午夜xxxxx| 最近中文字幕一区二区| 精品久久一二三| 国产又粗又长又爽视频| 日韩欧美亚洲另类| 日韩一级免费在线观看| 少妇人妻大乳在线视频| 精品一区二区三区毛片| 五月天中文字幕在线| 最近免费中文字幕中文高清百度| 成人手机在线播放| 中文字幕第17页| 乱子伦视频在线看| 欧美变态另类刺激| www.在线观看av| 麻豆md0077饥渴少妇| 成人综合久久网| 美女黄色片视频|