黄色网址大全免费-黄色网址你懂得-黄色网址你懂的-黄色网址有那些-免费超爽视频-免费大片黄国产在线观看

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

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

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


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多線程學習,深入解析


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

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 成年人黄视频大全 | 日韩一区二区不卡中文字幕 | 亚洲午夜精品一区二区 | 亚洲视频一| 亚洲欧美日韩精品香蕉 | 麻豆国内精品欧美在线 | 99免费在线视频 | 国产成人综合亚洲一区 | 欧美亚洲国产一区二区三区 | 亚洲欧美日韩一区 | 欧美一区二区三区男人的天堂 | 一道本不卡免费视频 | 精品久久久久久久九九九精品 | 18女人水真多免费高清毛片 | 最新中文字幕日本 | 插插宗合网 | 日韩欧美中文 | 久国产精品视频 | 国产精品99爱免费视频 | 欧美xxxx性疯狂bbbb | 国产成人精品综合在线 | 黄色一级视频欧美 | 精品国产品欧美日产在线 | 欧美日韩伦理 | 波多野结衣视频在线观看地址免费 | 日韩免费影院 | 日韩精品一区二区三区免费观看 | 99re视频| 在线观看深夜视频 | 成人在线免费视频 | 男女后进式猛烈xx00动态图片 | 天天槽夜夜槽槽不停 | 日本在线一本 | 欧美一区二区三区不卡免费观看 | 欧美亚洲国产激情一区二区 | 97国产品香蕉在线观看 | 久热爱精品视频在线观看久爱 | 日本韩国一区二区 | 国产麻豆媒一区一区二区三区 | 日韩视频在线观看一区 | 久久综合九九 |