国产精品久久久久久久久久久新郎_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精品国产综合久久香蕉最新版 _国产精品亚洲激情_色综合男人天堂
    中文字幕有码av| 不卡av免费在线| 日本一区二区三区四区五区六区| 那种视频在线观看| 成人国产一区二区三区| 天天干天天色天天干| 日韩av手机版| 日韩中文字幕二区| 北条麻妃69av| 日本中文字幕网址| 国产美女在线一区| 国产自产在线视频| 国产在线播放观看| 国产二区视频在线| 日韩欧美不卡在线| 超碰97人人射妻| 不卡影院一区二区| 成年人视频网站免费观看| 日本a级片免费观看| 久久久久久久久久久视频| 人妻少妇精品久久| 日韩国产欧美亚洲| 久久久噜噜噜www成人网| 狠狠97人人婷婷五月| 看av免费毛片手机播放| 成人小视频在线看| 亚洲一二三区av| 天天影视色综合| 免费久久久久久| 欧美黑人在线观看| 日韩欧美不卡在线| 国产熟女高潮视频| 色综合色综合色综合色综合| 黄色小视频免费网站| 熟妇熟女乱妇乱女网站| 国产成人亚洲综合无码| 国产真人做爰毛片视频直播| 可以在线看的av网站| 日韩欧美精品在线观看视频| 国产aaaaa毛片| 日本网站在线看| 成年丰满熟妇午夜免费视频| 久久国产精品视频在线观看| 日韩av一二三四区| 超碰在线播放91| 午夜免费视频网站| 97在线国产视频| 无码无遮挡又大又爽又黄的视频| 日本激情视频在线播放| 咪咪色在线视频| 又大又硬又爽免费视频| 任你操这里只有精品| 国产乱码一区二区三区四区| 黄色三级中文字幕| 老司机午夜av| 天天爱天天做天天操| 久久视频这里有精品| 国产三级国产精品国产专区50| 中文字幕第50页| 丰满人妻中伦妇伦精品app| 天堂在线中文在线| 亚洲精品国产suv一区88| 成年人午夜视频在线观看| 人人爽人人av| 一二三在线视频| 日韩精品免费播放| 国产精品av免费| 国产成人黄色片| 欧美国产日韩在线视频| www.玖玖玖| 特级黄色录像片| 欧美 国产 小说 另类| ijzzijzzij亚洲大全| 凹凸日日摸日日碰夜夜爽1| 国产大尺度在线观看| 韩国一区二区av| 成人av在线不卡| 亚洲va综合va国产va中文| 九色自拍视频在线观看| 伊人免费视频二| 日韩精品免费播放| 日本黄大片在线观看| 中文字幕国产高清| 超碰影院在线观看| 国产美女主播在线播放| 91香蕉视频在线观看视频| 国产一区二区视频免费在线观看| 日本一二三区视频在线| www.精品在线| 日本精品www| 国产xxxx振车| 欧美爱爱视频网站| 久久婷五月综合| aaa毛片在线观看| 霍思燕三级露全乳照| 黄色一级片av| 国产又大又长又粗又黄| 国产成年人视频网站| 人妻无码视频一区二区三区| 精品少妇在线视频| 成人毛片100部免费看| 色婷婷激情视频| 中文字幕在线综合| 欧美性猛交久久久乱大交小说| 久无码久无码av无码| 中国老女人av| 亚洲视频在线不卡| 妺妺窝人体色www在线小说| 久久久久久久久影视| 色婷婷激情视频| 亚洲免费黄色录像| 一区二区三区视频在线观看免费| 美女av免费在线观看| 国产伦精品一区二区三区四区视频_| 黄色网在线视频| 黄色成人在线免费观看| 成人国产在线看| 日韩久久久久久久久久久久| 日韩精品第1页| 乱熟女高潮一区二区在线| 四虎精品欧美一区二区免费| 国产一二三四五| 亚洲精品天堂成人片av在线播放 | 欧美午夜性视频| 黄页网站大全在线观看| 日韩伦理在线免费观看| 青青草精品视频在线| 老太脱裤子让老头玩xxxxx| 少妇高潮喷水在线观看| 国产又黄又大又粗视频| 国产激情在线观看视频| 欧美伦理视频在线观看| 欧美午夜aaaaaa免费视频| 91小视频网站| 欧美视频亚洲图片| 三级在线免费观看| 国产日韩欧美精品在线观看| 欧美 日韩 国产在线观看| 日韩视频第二页| 最新天堂中文在线| 爱爱爱视频网站| 国产传媒久久久| 99999精品视频| 538任你躁在线精品免费| www,av在线| 日韩精品久久一区二区| 日韩在线视频在线观看| 污版视频在线观看| 强伦女教师2:伦理在线观看| 男女私大尺度视频| caoporn超碰97| 1314成人网| 黄色一级片在线看| 91香蕉视频导航| 今天免费高清在线观看国语| 免费看国产曰批40分钟| 黑森林精品导航| japanese在线播放| 免费在线观看的av网站| 五月天激情播播| 少妇一晚三次一区二区三区| 日本精品免费在线观看| 久久久亚洲国产精品| 99视频在线视频| 国产欧美123| 亚洲视频在线观看一区二区三区| www.桃色.com| 9久久9毛片又大又硬又粗| 天堂在线资源视频| 国产精品自拍合集| 欧美在线观看视频网站| 四虎4hu永久免费入口| 男女曰b免费视频| 好吊色视频988gao在线观看| 国产第一页视频| 成人免费看片视频在线观看| 欧美色图另类小说| 色呦呦网站入口| 日本成人中文字幕在线| 亚洲中文字幕无码一区二区三区| 欧美成人黑人猛交| 欧美一级特黄aaaaaa在线看片| 国产日韩一区二区在线| 国产欧美自拍视频| 亚洲五月天综合| 日本熟妇人妻xxxx| 国产三级精品三级在线| 欧美二区在线视频| www激情五月| 日本成人在线免费视频| 国产91在线亚洲| 99九九精品视频| 激情内射人妻1区2区3区| 大胆欧美熟妇xx| 污污视频在线免费| 一级黄色香蕉视频| 毛片在线视频播放| 超碰超碰超碰超碰超碰| 欧美成人乱码一二三四区免费| 激情伊人五月天|