<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      Loading

      【多線程】synchronized與Lock的區別

      相同點

      都是用來保護資源線程安全的

      都可以保證可見性

      可見性大致可以這樣理解,線程A的加解鎖的過程會對B線程完全可見,也就是說,線程A的加鎖和解鎖當時的鎖持有的狀態,線程B是可以獲取到的,這也就體現到了hanppens-before針對synchronized的一個原則。
      image.png

      對于Lock而言,他也是可以保證線程的可見性,例如下面示例的流程
      image.png

      關于可見性,可以詳細了解Java內存模型的知識。

      都擁有可重入的特點

      關于可重入鎖,他表示的是一個線程A他獲取到了B鎖,如果線程A在運行的過程中想要再獲取B鎖的同時,不需要B鎖再釋放鎖資源就能夠獲取到,那么他就是一個可重入的鎖,這個synchronized與ReentrantLock都具有相同的特點。
      關于可重入鎖的知識可以看一下【多線程】鎖的七大分類

      不同點

      用法區別

      Lock的鎖具有靈活性,他可以在A先加鎖,B再加鎖的時候,實現A先解鎖,B再解鎖。這里的解鎖順序可以完全由我們自行控制。

      lock1.lock();
      lock2.lock();
      ...
      lock1.unlock();
      lock2.unlock();
      

      synchronized就無法做到這一點,原因是由于synchronized加鎖和解鎖的順序完全是由JVM生成的代碼來實現的,屬于隱式加鎖。所以他的加解鎖的順序一定是要符合后加鎖先解鎖的原則。

      synchronized(obj1){
          synchronized(obj2){
              ...
          }
      }
      

      線程鎖的共享性

      synchronized 鎖只能同時被一個線程擁有,但是 Lock 鎖沒有這個限制。
      這個原因是因為synchronized他是內置鎖,由JVM實現獲取鎖和釋放鎖的原理,我們無法通過代碼控制,Lock則可以根據實現不同,有不同的原理,例如ReentrantLock內部是通過AQS來獲取和釋放鎖的。

      線程鎖的公平性

      ReentrantLock可以根據Lock等實現類設置公平或非公平,synchronized則無法設置。

      性能區別

      synchronized在Java5之前性能是非常低的,在Java的研發團隊不斷的優化和迭代之后,synchronized鎖的性不比Lock鎖的性能差,因為他優化了很多,比如自適應自旋,鎖消除,鎖粗化,輕量級鎖,偏向鎖等。

      適用場景

      在我們平時日常編寫代碼中,能不用就最好不用Lock和synchronized鎖,因為在許多情況下你可以使用java.util.concurrent包中的機制,他中間就包括了很多鎖的處理,也是推薦優先使用工具來來加解鎖。

      如果你需要使用一些特鎖的功能,比如設置公平性或者控制解鎖的順序,那么就可以使用Lock來加解鎖,但是如果你用不到Lock的特性,則建議直接使用synchronized,應為這樣可以減少代碼的數量,并且還會減少出錯的概率,因為使用Lock來加鎖,就必須finally的去解鎖,如果忘記,代碼就會出現很大的問題,相比之下,用synchronized會跟安全。

      posted @ 2022-03-24 23:59  鄧小白  閱讀(279)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 亚洲鸥美日韩精品久久| 国产亚洲精品成人aa片新蒲金 | 亚洲一线二线三线品牌精华液久久久 | 久久亚洲中文无码咪咪爱| 无码人妻丰满熟妇区五十路在线| 甘肃省| 国产SM重味一区二区三区| 最新偷拍一区二区三区| 在线涩涩免费观看国产精品| 高清美女视频一区二区三区| 一本大道久久香蕉成人网| 国产精品女人毛片在线看| 狠狠色综合网站久久久久久久| 亚洲精品男男一区二区| 人妻一区二区三区人妻黄色| 少妇激情一区二区三区视频小说 | 无码成a毛片免费| 少妇被日自拍黄色三级网络| 国产婷婷综合在线视频中文| 国产日韩AV免费无码一区二区三区 | 亚洲精品色在线网站| 日韩美女一区二区三区视频| 一区二区中文字幕av| 日日橹狠狠爱欧美视频| 免费av深夜在线观看| 亚洲一区二区中文av| 夜夜躁日日躁狠狠久久av| 黎川县| 99久re热视频这里只有精品6| 真实单亲乱l仑对白视频| 忘忧草在线社区www中国中文| 精品国产中文字幕在线| 国产又色又爽无遮挡免费动态图| 欧洲精品亚洲精品日韩专区| 国产亚洲精品第一综合另类无码无遮挡又大又爽又黄的视频 | 国产精品播放一区二区三区| 亚洲女同精品久久女同| 国产毛片基地| 鲁丝一区鲁丝二区鲁丝三区| 少妇人妻精品一区二区| 精品国产三级在线观看|