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

分享

多線程系列(4)使用多線程的安全問題

 昵稱10504424 2014-06-20
 在使用多線程的時候,,往往存在一定的公共數(shù)據(jù),為了避免多個線程同時操作同一數(shù)據(jù),,我們需要為線程加鎖,。

加鎖的原理:

每一個引用類型的對象都有一個同步索引塊,指示當前使用該對象的線程數(shù),,每個線程執(zhí)行到Lock語句塊的時候就會判斷當前鎖定項(這里是this,當前窗體對象)的同步索引塊是否等于0(即沒有線程在訪問該變量),,如果等于0則進入執(zhí)行塊,首先將同步索引塊的索引加1,,表示當前多了一個線程使用this,,等lock塊執(zhí)行完成再將同步索引塊中的索引值減1,使得其它線程能夠繼續(xù)訪問,,這樣就相當于實現(xiàn)了一個排隊機制,,使得在適當?shù)臅r候該串行執(zhí)行的代碼串行執(zhí)行。

我們可以利用lock語句為線程加鎖,。示例代碼如下:

需要鎖定對象:lock(this)

需要鎖定代碼段:Object obj = new Object(); lock(obj){…}

我們還可以利用lock語句的語法糖Monitor來實現(xiàn),,示例代碼如下:

復(fù)制代碼
class Control
{
      private object obj=new object();
 
      public void Method()
      {
            Monitor.Enter(obj);
            try
            {......}
            catch(Excetion ex)
            {......}
            finally
            {
                Monitor.Exit(obj);
            }
      }
}
復(fù)制代碼

至此,這個初級的多線程入門系列完成了,。后面隨著對多線程認識的加深,,我們再來進行補充。

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

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多