大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 學習攻略 Java多線程中鎖的理解與使用

Java多線程中鎖的理解與使用

更新時間:2020-02-05 14:15:32 來源:動力節點 瀏覽2408次


Java多線程中鎖的理解與使用


  分段鎖


  分段鎖其實是一種鎖的設計,并不是具體的一種鎖,對于ConcurrentHashMap而言,其并發的實現就是通過分段鎖的形式來實現高效的并發操作,ConcurrentHashMap中的分段鎖稱為Segment,它即類似于HashMap(JDK7與JDK8中HashMap的實現)的結構,即內部擁有一個Entry數組,數組中的每個元素又是一個鏈表;同時又是一個ReentrantLock(Segment繼承了ReentrantLock)。當需要put元素的時候,并不是對整個HashMap進行加鎖,而是先通過hashcode來知道他要放在那一個分段中,然后對這個分段進行加鎖,所以當多線程put的時候,只要不是放在一個分段中,就實現了真正的并行的插入。但是,在統計size的時候,可就是獲取HashMap全局信息的時候,就需要獲取所有的分段鎖才能統計。


  分段鎖的設計目的是細化鎖的粒度,當操作不需要更新整個數組的時候,就僅僅針對數組中的一項進行加鎖操作。


  偏向鎖/輕量級鎖/重量級鎖


  這三種鎖是指鎖的狀態,并且是針對synchronized。在Java5通過引入鎖升級的機制來實現高效synchronized。這三種鎖的狀態是通過對象監視器在對象頭中的字段來表明的。


  偏向鎖是指一段同步代碼一直被一個線程所訪問,那么該線程會自動獲取鎖。降低獲取鎖的代價。


  輕量級鎖是指當鎖是偏向鎖的時候,被另一個線程所訪問,偏向鎖就會升級為輕量級鎖,其他線程會通過自旋的形式嘗試獲取鎖,不會阻塞,提高性能。


  重量級鎖是指當鎖為輕量級鎖的時候,另一個線程雖然是自旋,但自旋不會一直持續下去,當自旋一定次數的時候,還沒有獲取到鎖,就會進入阻塞,該鎖膨脹為重量級鎖。重量級鎖會讓其他申請的線程進入阻塞,性能降低。


  自旋鎖


  在Java中,自旋鎖是指嘗試獲取鎖的線程不會立即阻塞,而是采用循環的方式去嘗試獲取鎖,這樣的好處是減少線程上下文切換的消耗,缺點是循環會消耗CPU。


Java多線程中鎖的理解與使用


       以上就是動力節點Java培訓機構小編介紹的“Java多線程中鎖的理解與使用”的內容,希望對大家有幫助,如有疑問,請在線咨詢,有專業老師隨時為你服務。


  相關內容


  java多線程的狀態轉換以及基本操作


  常見Java多線程面試題總結


  Java多線程學習,深入解析


提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 9966久久精品免费看国产 | 天天综合网久久 | 日欧毛片 | 色综合伊人色综合网亚洲欧洲 | 欧美日韩中文字幕一区二区高清 | 97se亚洲综合在线 | 免费高清毛片 | 欧美午夜毛片a级在线 | 九九热网| 色狠狠一区二区三区香蕉蜜桃 | 国产成人精品视频免费 | 欧美成人老熟妇暴潮毛片 | 亚洲国产精品线观看不卡 | 免费视频不卡一区二区三区 | 一区欧美 | 国产亚洲午夜精品a一区二区 | 国产精品爱久久久久久久三级 | 精品久久综合一区二区 | 久久99热在线观看7 久久99热这里只有精品 | 日韩a级片 | 亚洲久久草 | 久久久国产精品四虎 | 亚洲国产精品视频在线观看 | 亚洲成人免费在线视频 | 91精东果冻蜜桃星空麻豆 | 在线 | 一区二区三区四区 | 全黄毛片| 一级二级毛片 | 日韩专区中文字幕 | 亚洲成人在线免费观看 | 在线99| 国产香蕉在线视频一级毛片 | 九九视频这里只有精品 | 国产成人免费a在线资源 | 亚洲国产精品一区 | 国内精品久久久久影院老司 | 成人a毛片免费全部播放 | 99精彩免费观看 | 在线观看 一区二区 麻豆 | 欧美成人h| 亚洲高清美女一区二区三区 |