關鍵字Lock的簡單小例子

 

        1、什麼是Lock?多線程

  Lock——字面上理解就是鎖上;鎖住;把……鎖起來的意思;this

  爲何要鎖?要鎖幹什麼?——回到現實中可想象到,這個衛生間我要上,其餘人不要進來!(因此我要鎖住門);又或者土味情話所言,我要把你鎖在個人內心,而後在裏面加個無限循環語句,不給你出來,也不被別人所得,你只能是個人,哈哈哈哈....spa

  上面的簡單想象,能夠獲得,咱們之因此要鎖,就是由於咱們想獨佔某個資源(廁所and你的心愛人),或者在須要共用同一個資源的時候(更多的表如今多線程方面)。多線程能夠簡單的理解爲,一個線程看做是一我的,多線程就是多我的在幹活,每一個人幹每一個人的事,互不干擾,若是你的代碼中出現相似(廁所這樣的公共資源),你就得加個鎖拉!否則多我的上同一個廁所,那畫面得.............咳咳咳~總之輕則數據異常,重則軟件崩潰。線程

  Lock關鍵字主要是實現多線程同步3d

  2、下面提供幾個簡單的小例子:
    下面的例子是根據自身能力給的例子,若有不妥之處,還請各位多多指導!

對象

  一、新建一個Window窗體應用程序——略~blog

  二、添加一個鎖資源

          private static object o = new object();同步

  三、添加三個按鈕button
    (1)線程1按鈕以及線程方法
軟件

      按鈕1是實現開啓線程1;

      

 

 

 

 

 

 

 

 

 

      線程方法:

 

 

     this.Invoke()是一種託管方法——解決跨線程問題~      

 

 

 

    (2)線程2按鈕
     同理
          

 

       (3)同時執行兩個線程的按鈕

      

 

    四、加鎖和沒加鎖區別

    (1)加鎖效果

  

 

     (2)不加鎖

    去掉lock{}部分

 

   線程1和2同時寫入了1,數據衝突
   五、使用總結:

     建鎖對象——private static object o = new object();

    鎖住該鎖的地方——lock{};    

相關文章
相關標籤/搜索