最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#中volatile與lock用法

 更新時間:2014年10月28日 14:28:52   投稿:shichen2014  
這篇文章主要介紹了C#中volatile與lock用法,較為詳細的分析了C#中volatile與lock的適用情況及用法實例,具有一定的參考借鑒價值,需要的朋友可以參考下

本文實例講述了C#中volatile與lock用法,分享給大家供大家參考。具體分析如下:

一、C#中volatile

volatile是C#中用于控制同步的關(guān)鍵字,其意義是針對程序中一些敏感數(shù)據(jù),不允許多線程同時訪問,保證數(shù)據(jù)在任何訪問時刻,最多有一個線程訪問,以保證數(shù)據(jù)的完整性,volatile是修飾變量的修飾符。

1、volatile的使用場景

多個線程同時訪問一個變量,CLR為了效率,允許每個線程進行本地緩存,這就導(dǎo)致了變量的不一致性。volatile就是為了解決這個問題,volatile修飾的變量,不允許線程進行本地緩存,每個線程的讀寫都是直接操作在共享內(nèi)存上,這就保證了變量始終具有一致性。

2、volatile 關(guān)鍵字可應(yīng)用于以下類型的字段

① 引用類型

② 整型,如 sbyte、byte、short、ushort、int、uint、char、float 和 bool。

③ 具有整數(shù)基類型的枚舉類型。

④ 已知為引用類型的泛型類型參數(shù)。

⑤ 不能將局部變量聲明為 volatile。

二、C#中l(wèi)ock

1、lock 關(guān)鍵字將語句塊標記為臨界區(qū),方法是獲取給定對象的互斥鎖,執(zhí)行語句,然后釋放該鎖。此語句的形式如下:

復(fù)制代碼 代碼如下:
Object thisLock = new Object();
lock (thisLock)
{
    // Critical code section
}

2、lock確保當一個線程位于代碼的臨界區(qū)時,另一個線程不進入臨界區(qū)。如果其他線程試圖進入鎖定的代碼,則它就會被阻止,直到該對象被釋放。也就是說在用到臨界資源,確保線程可以排隊進入執(zhí)行臨界區(qū)中的方法。

3、lock的使用場景

多個線程同時訪問一個代碼塊,使用lock 修飾該代碼塊,強制多個線程進行排隊,一個接一個的去訪問。

通常,應(yīng)避免鎖定 public 類型,否則實例將超出代碼的控制范圍。最佳做法是定義 private 對象來鎖定, 或 private static 對象變量來保護所有實例所共有的數(shù)據(jù)。

希望本文所述對大家的C#程序設(shè)計有所幫助。

相關(guān)文章

  • 如何在C#中使用只讀的 Collections

    如何在C#中使用只讀的 Collections

    這篇文章主要介紹了如何在C#中使用只讀的 Collections,幫助大家更好的理解和學(xué)習(xí)使用c#,感興趣的朋友可以了解下
    2021-04-04
  • c#典型工廠化實現(xiàn)實例

    c#典型工廠化實現(xiàn)實例

    c#典型工廠化實現(xiàn)實例,需要的朋友可以參考一下
    2013-03-03
  • C#實現(xiàn)在窗體上的統(tǒng)計圖效果

    C#實現(xiàn)在窗體上的統(tǒng)計圖效果

    這篇文章主要為大家詳細介紹了C#實現(xiàn)在窗體上的統(tǒng)計圖效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • C#中面向?qū)ο缶幊虣C制之繼承學(xué)習(xí)筆記

    C#中面向?qū)ο缶幊虣C制之繼承學(xué)習(xí)筆記

    這篇文章主要介紹了C#中面向?qū)ο缶幊虣C制之繼承學(xué)習(xí)筆記,本文給出一個簡單子實例講解C#中的繼承,并講解了一些C#繼承的知識技巧,需要的朋友可以參考下
    2015-01-01
  • 如何使用C#中的Lazy的使用方法

    如何使用C#中的Lazy的使用方法

    這篇文章主要介紹了如何使用C#中的Lazy的使用方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • 基于C#實現(xiàn)亂碼視頻效果

    基于C#實現(xiàn)亂碼視頻效果

    亂碼視頻效果可能很多人都在抖音看到過,即把一個短視頻,轉(zhuǎn)成數(shù)字、字母等亂碼組成的形式進行播放。本文將用C#實現(xiàn)一下這一效果,感興趣的可以了解一下
    2023-01-01
  • C#實現(xiàn)動態(tài)數(shù)據(jù)繪圖graphic的方法示例

    C#實現(xiàn)動態(tài)數(shù)據(jù)繪圖graphic的方法示例

    這篇文章主要介紹了C#實現(xiàn)動態(tài)數(shù)據(jù)繪圖graphic的方法,結(jié)合實例形式分析了C#根據(jù)動態(tài)數(shù)據(jù)繪制2D數(shù)據(jù)表格的相關(guān)操作技巧,需要的朋友可以參考下
    2017-09-09
  • C#中out與ref的區(qū)別實例解析

    C#中out與ref的區(qū)別實例解析

    這篇文章主要介紹了C#中out與ref的區(qū)別實例解析,對C#初學(xué)者有不錯的學(xué)習(xí)借鑒價值,需要的朋友可以參考下
    2014-08-08
  • 基于C#代碼實現(xiàn)九宮格算法橫豎都等于4

    基于C#代碼實現(xiàn)九宮格算法橫豎都等于4

    這篇文章主要介紹了基于C#代碼實現(xiàn)九宮格算法橫豎都等于4的相關(guān)資料,需要的朋友可以參考下
    2016-01-01
  • C#中word導(dǎo)出功能的騷操作詳解

    C#中word導(dǎo)出功能的騷操作詳解

    這篇文章主要給大家介紹了關(guān)于C#中word導(dǎo)出功能騷操作的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02

最新評論

大渡口区| 页游| 板桥市| 林芝县| 阿克苏市| 彰化市| 富宁县| 呼和浩特市| 营山县| 芜湖县| 南城县| 石阡县| 潍坊市| 莱芜市| 新田县| 连江县| 香河县| 秀山| 英德市| 论坛| 镇安县| 长阳| 常宁市| 土默特右旗| 嘉荫县| 寿光市| 张北县| 石渠县| 库伦旗| 新龙县| 庄浪县| 清丰县| 白玉县| 东港市| 泰和县| 花莲市| 汽车| 德令哈市| 沈阳市| 望都县| 上蔡县|