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

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


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

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 在线观看日本一区 | avtt天堂网永久资源手机版 | 色的视频在线观看免费播放 | 欧美日韩国产一区二区三区欧 | 日本漫画工囗全彩内番怀孕 | 深夜在线观看网站 | 久久精品国产欧美日韩99热 | 亚洲欧美日韩高清综合678 | 天天干天天插天天 | 中文字幕日韩一区二区三区不卡 | 免费看黄网站在线看 | 精品亚洲成a人片在线观看 精品亚洲成a人在线播放 | 激情久久久久久久久久 | 国产又色又爽又黄 | 再深点灬舒服灬太大了添a 在线99 | 国产在线精品观看一区 | 看黄免费网站 | 精品91自产拍在线观看一区 | 日本成日本片人免费 | 免费人成在线观看 | 欧美在线观看一区二区 | 欧美在线中文 | 国产成人a一在线观看 | 国产成人综合久久亚洲精品 | 欧美 日韩 视频 | 一个人看免费视频www在线观看 | 国产成人高清亚洲一区91 | 精品视频一区二区三区免费 | 高清免费a级在线观看国产 高清潢色大片 | 国产亚洲欧美一区 | 中文字幕第38页永久乱码 | 激情文学亚洲 | 成人激情免费视频 | 欧美午夜网 | 中中文字幕亚州无线码 | 2020亚洲欧美日韩在线观看 | 亚洲精品香蕉婷婷在线观看 | a天堂v | 国产18视频 | 国产成年网站 | 老司机精品久久最新免费 |