久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

(六)線程--分別用lock以及Interlocked和Monitor類(lèi)實(shí)現(xiàn)線程的臨界區(qū)操作(互斥)(示例下載)

 A_POST 2012-06-04

(一).描述
   此示例演示分別用lock以及Interlocked和Monitor類(lèi)實(shí)現(xiàn)線程的臨界區(qū)操作(互斥)
(二).代碼
   using System;
using System.Threading;
using System.Collections;

namespace 加鎖_實(shí)現(xiàn)臨界區(qū)互斥操作_

 //委托聲明(函數(shù)簽名)
 delegate string MyMethodDelegate();

 class MyClass
 {  
  private static ArrayList arrList = new ArrayList();
  private static int i = 0;
  
  public static void Add()
     {
   //方法一:用 lock 實(shí)現(xiàn)
//   lock(arrList)
//   {
//    arrList.Add(i.ToString());
//    i++;
//   }
   
   //方法二: 用Interlicked類(lèi)實(shí)現(xiàn)
//   System.Threading.Interlocked.Increment(ref i);
//   arrList.Add(i.ToString());

   //方法三: 用Monitor類(lèi)實(shí)現(xiàn)
   try
   {
    //I.不限時(shí)間
    //stem.Threading.Monitor.Enter(arrList); 
    
    //II.在指定時(shí)間獲得排他鎖
    if(System.Threading.Monitor.TryEnter(arrList,TimeSpan.FromSeconds(30))) //在30秒內(nèi)獲取對(duì)象排他鎖. 靈活運(yùn)用可以實(shí)現(xiàn)防止死鎖功能
    {                                                                       //避免互相等待情況。 在一定時(shí)間內(nèi)得不到排他鎖,,可能是自己
                                                                         //占用其它排它鎖造成的(別的正在等自己正占用的排它鎖,,而處于等待狀態(tài)),
                                                                         //這時(shí)可以釋放掉自己正占用的排他鎖后,,再試圖去得到想要的對(duì)象的排他鎖
     arrList.Add(i.ToString());                                       
     i++;
    }
   }
   catch
   {
    //發(fā)生異常后自定義錯(cuò)誤處理代碼
   }
   finally
   {
    Monitor.Exit(arrList);  //不管是正常還是發(fā)生錯(cuò)誤,,都得釋放對(duì)象
   }
  } 
  
  [STAThread]
  static void Main(string[] args)
  {
   Thread thread1 = new Thread(new ThreadStart(Add));
   Thread thread2 = new Thread(new ThreadStart(Add));  
   Thread thread3 = new Thread(new ThreadStart(Add)); 
   thread1.Start();
   thread2.Start();
   thread3.Start();

   Console.Read();

   for(int i=0;i<arrList.Count;i++)
   {
    Console.WriteLine(arrList[i].ToString());
   }

   Console.Read();

  }
 }
}

本示例代碼已經(jīng)測(cè)試,能夠正常運(yùn)行!


(三).示例下載
  http://www.cnblogs.com/Files/ChengKing/ThreadExample.rar

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,,所有內(nèi)容均由用戶(hù)發(fā)布,,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購(gòu)買(mǎi)等信息,,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào),。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶(hù) 評(píng)論公約

    類(lèi)似文章 更多