精品日韩在线,日韩精品福利一区二区三区,日韩午夜黄色,国产日韩欧美高清免费

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

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

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

目錄

一、線程的定義

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

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

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

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

六、異步 SqlCommand

七、并行編程與PLINQ

八、計時器與鎖

 

八、定時器與鎖

8.1定時器

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

開發(fā)實例

     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); } }

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


8.2 鎖

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

8.2.1 lock

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

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

如果操作只鎖定某段代碼,可以事先建立一個object對象,并對此對象進行操作鎖定,這也是.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 兩個方法,它可以對對象進行鎖定與解鎖,比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方法可以讓線程等待一段時間,然后在完成時使用Pulse、PulseAll等方法通知等待線程。

 

8.2.3 Interlocked

Interlocked存在于System.Thread命名空間內(nèi),它的操作比Monitor使用更簡單。
它存在CompareExchange、Decrement、Exchange、Increment等常用方法讓參數(shù)在安全的情況進行數(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時,則把100賦值給a。

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



結(jié)束語

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

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


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

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

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

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

     
     
    精品日韩在线,日韩精品福利一区二区三区,日韩午夜黄色,国产日韩欧美高清免费
    国产精品对白久久久久粗| 国产韩日影视精品| 在线亚洲精品| 四虎国产精品免费观看| 国产精品久久久久久久久久久久久久久 | 国产资源在线观看入口av| 国产探花一区二区| 久久激情五月婷婷| 欧美久久香蕉| 国产精区一区二区| 国产欧美日韩精品一区二区三区| 一区二区亚洲视频| 蜜臀久久99精品久久久画质超高清 | 亚洲综合在线电影| 久久九九精品| 国产精品日韩| 天海翼亚洲一区二区三区| 国产剧情一区二区在线观看| 久久久久一区| 亚洲免费一区二区| 亚洲欧美日韩视频二区| 亚洲一区日韩| 一区二区91| 久久亚洲国产精品尤物| 美女视频网站久久| av日韩中文| 视频一区视频二区中文| 91精品视频一区二区| 精品视频免费| 国产专区一区| 国产亚洲精品美女久久久久久久久久| 国产日韩精品视频一区二区三区| 美女久久精品| japanese国产精品| 国产探花一区| 精品丝袜在线| 欧美一区成人| 欧美特黄一级大片| 无码日韩精品一区二区免费| 国产美女亚洲精品7777| 日韩国产一区| 欧美日韩1区2区3区| 久久精品1区| 久久激五月天综合精品| 红桃视频国产一区| 国产精品99一区二区三| 日韩综合一区二区| 久久精品国产68国产精品亚洲| 日本一区二区三区视频在线看| 日韩高清欧美| 国产精品国码视频| 免费黄网站欧美| 人人精品亚洲| 精品视频网站| 日本欧美大码aⅴ在线播放| 欧美亚洲激情| av高清不卡| 精品国产精品久久一区免费式| 青青草精品视频| 亚洲精品伊人| 亚洲欧美日韩精品一区二区| 影院欧美亚洲| 久久国产成人午夜av影院宅| 日本免费一区二区三区四区| 开心激情综合| 成人一二三区| 亚洲精品乱码久久久久久蜜桃麻豆 | 999精品色在线播放| 国产成人免费精品| 精品一区二区三区中文字幕视频 | 日本视频一区二区| 亚洲精品一级二级三级| 日韩精品一区二区三区中文在线| 亚洲午夜免费| 国产精品久久免费视频| 国产福利亚洲| 日韩av在线中文字幕| 四虎国产精品免费观看| 电影亚洲精品噜噜在线观看| 天堂网av成人| 欧美日韩精品一本二本三本 | 欧美一区免费| 国产精品a级| 欧洲亚洲一区二区三区| 亚洲精品小说| 国产亚洲字幕| 久久精品国语| 日韩高清在线观看一区二区| 欧美啪啪一区| 日韩欧美不卡| 亚洲精品乱码| av综合电影网站| 亚洲精品人人| 欧美天堂视频| 日韩精品一区二区三区av| 蜜臀国产一区| 亚洲精品一二| 天堂网av成人| 欧美激情 亚洲a∨综合| 欧美中文字幕一区二区| 久久国产乱子精品免费女| 国产91精品对白在线播放| 国产精品成人自拍| 欧美1区免费| 国产精品手机在线播放| 免费成人网www| 久久一区视频| 亚洲不卡视频| 午夜国产一区二区| 成人综合一区| 国产福利一区二区精品秒拍| 一本一道久久a久久精品蜜桃| 美女尤物国产一区| 日韩欧美激情电影| 亚洲欧美日韩国产| 日韩亚洲一区在线| 你懂的亚洲视频| 欧美欧美黄在线二区| 亚洲欧洲午夜| aⅴ色国产欧美| 久久婷婷一区| 亚洲一级少妇| 中文字幕高清在线播放| 国产精品丝袜在线播放| 久久激五月天综合精品| 一区二区电影在线观看| 噜噜噜久久亚洲精品国产品小说| 久久久一二三| 亚洲福利久久| 中文欧美日韩| 在线精品国产亚洲| 在线精品福利| 91精品视频一区二区| 亚洲欧洲免费| 国产色噜噜噜91在线精品| 欧美精品影院| 麻豆一区二区在线| 97精品97| 黄色亚洲大片免费在线观看| 欧美日韩精品免费观看视频完整| 日韩视频免费| 日韩精品福利一区二区三区| 国产精品嫩草影院在线看| 国产成人精品一区二区三区免费 | 亚洲欧美久久久| 五月婷婷六月综合| 丝袜国产日韩另类美女| 亚洲综合五月| 国产精品一区二区中文字幕| 国模大尺度视频一区二区| 久久三级视频| 亚洲精品乱码久久久久久蜜桃麻豆| 欧美日韩一区自拍| 电影天堂国产精品| 中文字幕一区二区三区四区久久| 国产毛片精品久久| 亚洲二区在线| 欧美亚洲二区| 日韩免费视频| 日本aⅴ精品一区二区三区| 国产精品手机在线播放| 欧美aa在线观看| 日本欧美在线| 久久免费大视频| 欧美黄色一区| 伊人网在线播放| 亚洲高清影视| 国产三级精品三级在线观看国产| 免费视频一区三区| 亚洲精品亚洲人成在线观看| 日本成人在线网站| 国产一区二区三区精品在线观看| 久久人人精品| 另类综合日韩欧美亚洲| 免费看的黄色欧美网站| 国产精品午夜av| 亚洲精品免费观看| 免费国产自久久久久三四区久久 | 激情综合网址| 久久精品一区| 欧美日韩 国产精品| 久久最新视频| 亚洲一区黄色| 偷拍欧美精品| 久久中文字幕av| 色天使综合视频| 老司机精品视频网| 欧美一区久久| 人人爱人人干婷婷丁香亚洲| 美女黄网久久| 巨乳诱惑日韩免费av| 久久精品国产99久久| 久久91视频| 国产欧美一区二区色老头| 亚洲影院天堂中文av色| 亚洲欧美久久久| 国产免费成人| 亚洲欧美日韩视频二区| 视频一区二区不卡| 五月激激激综合网色播|