老司机91精品网站在线观看-老司机67194免费观看-老司国产精品视频-老熟人老女人国产老太-中文字幕日本在线-中文字幕日本一区久久

始創(chuàng)于2000年 股票代碼:831685
咨詢熱線:0371-60135900 注冊有禮 登錄
  • 掛牌上市企業(yè)
  • 60秒人工響應(yīng)
  • 99.99%連通率
  • 7*24h人工
  • 故障100倍補(bǔ)償
全部產(chǎn)品
您的位置: 網(wǎng)站首頁 > 幫助中心>文章內(nèi)容

細(xì)說多線程(八) —— 計(jì)時(shí)器與鎖

發(fā)布時(shí)間:  2012/9/16 6:40:51

目錄

一、線程的定義

二、線程的基礎(chǔ)知識

三、以ThreadStart方式實(shí)現(xiàn)多線程

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

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

六、異步 SqlCommand

七、并行編程與PLINQ

八、計(jì)時(shí)器與鎖

 

八、定時(shí)器與鎖

8.1定時(shí)器

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

開發(fā)實(shí)例

     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();
         }
 
         //顯示線程池現(xiàn)狀
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); } }

注意觀察運(yùn)行結(jié)果,每次調(diào)用Timer綁定的方法時(shí)不一定是使用同一線程,但線程都會是來自工作者線程的后臺線程。


8.2 鎖

在使用多線程開發(fā)時(shí),存在一定的共用數(shù)據(jù),為了避免多線程同時(shí)操作同一數(shù)據(jù),.NET提供了lock、Monitor、Interlocked等多個(gè)鎖定數(shù)據(jù)的方式。

8.2.1 lock

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

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

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

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

 

8.2.2 Montior

Montior存在于System.Thread命名空間內(nèi),相比lock,Montior使用更靈活。
它存在 Enter, Exit 兩個(gè)方法,它可以對對象進(jìn)行鎖定與解鎖,比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對象能夠確保無論是否出現(xiàn)死鎖狀態(tài),系統(tǒng)都會釋放obj對象。
而且Monitor中還存在Wait方法可以讓線程等待一段時(shí)間,然后在完成時(shí)使用Pulse、PulseAll等方法通知等待線程。

 

8.2.3 Interlocked

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

Increment、Decrement 可以使參數(shù)安全地加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使用特別方便,它相當(dāng)于if的用法,當(dāng)a等于1時(shí),則把100賦值給a。

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



結(jié)束語

熟悉掌握多線程開發(fā),對提高系統(tǒng)工作效率非常有幫助,尤其是回調(diào)方法與最近火熱的并行編程更應(yīng)該引起各位的重視。
在下用了較長的時(shí)間總結(jié)所過的多線程開發(fā)方式,希望本篇文章能對各位的學(xué)習(xí)研究有所幫助,當(dāng)中有所錯漏的地方敬請點(diǎn)評。

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


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

服務(wù)器租用/服務(wù)器托管中國五強(qiáng)!虛擬主機(jī)域名注冊頂級提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM]

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

    0371-60135900
    7*24小時(shí)客服服務(wù)熱線

     
     
    久草免费在线视频| 韩国三级香港三级日本三级la| 亚洲天堂免费| 久久国产精品只做精品| 青青久在线视频| a级毛片免费观看网站| 亚洲女人国产香蕉久久精品| 日韩欧美一及在线播放| 999久久狠狠免费精品| 九九精品久久| 国产一区二区精品久久91| 日韩在线观看视频网站| 亚洲www美色| 国产伦精品一区二区三区在线观看| 国产视频一区二区在线播放| 欧美国产日韩精品| 成人免费一级毛片在线播放视频| 久久精品大片| 国产极品精频在线观看| 欧美国产日韩精品| 午夜久久网| 免费的黄色小视频| 成人影视在线观看| 精品视频在线看| 四虎论坛| 黄色免费三级| 国产网站免费| 毛片成人永久免费视频| 一级女性全黄生活片免费| 欧美激情一区二区三区在线播放 | 欧美国产日韩精品| 青草国产在线| 日韩在线观看免费| 九九精品在线| 韩国毛片基地| 欧美国产日韩一区二区三区| 欧美国产日韩一区二区三区| 亚洲精品影院| 天堂网中文字幕| 91麻豆精品国产高清在线| 99久久精品国产高清一区二区| 欧美激情影院| 可以在线看黄的网站| 亚洲天堂在线播放| 国产视频一区二区在线播放| 国产不卡在线看| 久久99欧美| 国产伦理精品| 欧美大片aaaa一级毛片| 青青久久网| 午夜家庭影院| 九九精品在线| 国产亚洲精品成人a在线| 国产亚洲男人的天堂在线观看| 日韩一级黄色片| 青草国产在线| 九九久久99综合一区二区| 99久久精品国产高清一区二区| 久久国产影视免费精品| 中文字幕一区二区三区精彩视频| 亚欧成人毛片一区二区三区四区 | 欧美激情一区二区三区在线 | 中文字幕一区二区三区 精品| 国产伦精品一区二区三区无广告 | 日韩免费在线观看视频| 精品国产一区二区三区久| 欧美日本二区| 国产高清在线精品一区a| 韩国妈妈的朋友在线播放 | 欧美激情影院| 91麻豆精品国产高清在线| 国产一区二区福利久久| 国产一级强片在线观看| 四虎影视久久| 国产成人精品综合| 香蕉视频三级| 日本伦理片网站| 成人a大片高清在线观看| 国产不卡在线看| 国产精品自拍亚洲| 日韩中文字幕在线播放| 二级特黄绝大片免费视频大片| 毛片成人永久免费视频| 你懂的日韩| 国产高清在线精品一区二区| 91麻豆精品国产高清在线| 国产极品精频在线观看| 999久久66久6只有精品| 久久99欧美| 香蕉视频三级| 久久精品人人做人人爽97| 九九精品在线| 久久成人综合网| 国产91精品一区| 国产极品精频在线观看| 国产视频久久久| 成人免费网站久久久| 精品国产一区二区三区免费 | 一级女性全黄久久生活片| 成人免费一级纶理片| 日韩在线观看网站| 99热精品在线| 精品视频在线观看免费| 精品视频在线观看一区二区三区| 尤物视频网站在线观看| 欧美α片无限看在线观看免费| 久久久久久久久综合影视网| 一 级 黄 中国色 片| 日韩av成人| 一级毛片视频播放| 国产成人啪精品| 精品在线视频播放| 免费一级生活片| a级毛片免费全部播放| 一级女性全黄生活片免费| 欧美日本免费| 久久精品成人一区二区三区| 中文字幕一区二区三区精彩视频| 97视频免费在线观看| 亚洲精品中文字幕久久久久久| 国产一区免费在线观看| 日韩一级黄色| 亚洲www美色| 日韩在线观看视频网站| 日韩中文字幕一区| 美女免费精品高清毛片在线视 | 精品在线观看一区| 免费国产在线观看| 999精品视频在线| 国产一区二区精品久久| 国产综合91天堂亚洲国产| 青青久久网| 精品久久久久久综合网| 免费的黄视频| 日韩综合| 黄色短视频网站| 日韩在线观看视频黄| 国产精品自拍在线| 日本在线不卡免费视频一区| 国产网站在线| 99久久精品国产麻豆| 国产亚洲免费观看| 美女免费毛片| 一级毛片视频免费| 九九精品影院| 欧美激情伊人| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 午夜欧美成人久久久久久| 精品国产一区二区三区久久久狼| 国产a毛片| 国产精品自拍在线| 欧美另类videosbestsex高清 | 久久99这里只有精品国产| 日本免费乱理伦片在线观看2018| 国产精品1024永久免费视频| 日本在线不卡视频| 精品国产一区二区三区久久久蜜臀| 日韩在线观看网站| 国产一区精品| 国产伦久视频免费观看 视频| 韩国三级视频网站| 免费毛片基地| 国产一区精品| 国产精品免费久久| 黄色福利| 韩国毛片基地| 欧美1区2区3区| 免费国产在线视频| 天天做人人爱夜夜爽2020毛片| 青青青草影院 | 成人在免费观看视频国产| 久草免费在线色站| 九九久久国产精品大片| 欧美激情影院| 亚洲第一色在线| 日韩av片免费播放| 人人干人人草| 亚欧成人乱码一区二区| 欧美激情伊人| 午夜激情视频在线观看 | 国产精品123| 久久精品成人一区二区三区| 国产a视频精品免费观看| 午夜欧美成人久久久久久| 在线观看成人网| 99久久精品费精品国产一区二区| 精品视频一区二区三区| a级毛片免费观看网站| 日韩综合| 四虎影视久久| 国产一区二区精品尤物| 999精品视频在线| 黄视频网站免费观看| 在线观看成人网| 亚飞与亚基在线观看| 天天做日日爱| 国产一区二区福利久久| 国产国语在线播放视频| 中文字幕一区二区三区精彩视频| 99热精品一区|