面試 分段鎖

2021-09-29 03:23:26 字數 394 閱讀 8284

分段鎖

併發容器類的加鎖機制是基於粒度更小的分段鎖,分段鎖也是提公升多併發程式效能的重要手段之一。

在併發程式中,序列操作是會降低可伸縮性,並且上下文切換也會減低效能。在鎖上發生競爭時將通水導致這兩種問題,使用獨佔鎖時保護受限資源的時候,基本上是採用序列方式—-每次只能有乙個執行緒能訪問它。所以對於可伸縮性來說最大的威脅就是獨佔鎖。

概念分段鎖其實是一種鎖的設計,並不是具體的一種鎖

設計目的

細化鎖的粒度,當操作不需要更新整個陣列的時候,就僅僅針對陣列中的一項進行加鎖操作。

實現原理

對資料分段加鎖提高併發效率

例項jdk8之前的concurrenthashmap,jdk8後採用cas+synchronized。通過hashcode計算到索引後對資料分段加鎖

鎖7 分段鎖(一種鎖的形式)

1 概念 分段鎖其實是一種鎖的設計,並不是具體的一種鎖,對於concurrenthashmap而言,其併發的實現就是通過分段鎖的形式來實現高效的併發操作。我們以concurrenthashmap來說一下分段鎖的含義以及設計思想,concurrenthashmap中的分段鎖稱為segment,它即類似...

樂觀鎖與悲觀鎖, 面試必考

悲觀鎖 比較悲觀,每次去拿資料的時候,都認為資料會被修改。所以每次在拿資料的時候都會上鎖,這樣別人想拿這個資料就會阻塞。像關係型資料庫裡邊就用到了很多這種鎖機制。使用場景 但如果是多寫的情況,一般會經常產生衝突,所以一般多寫的場景下用悲觀鎖就比較合適。樂觀鎖 總是樂觀,每次去拿資料的時候都認為別人不...

悲觀鎖 面試必備之 樂觀鎖與悲觀鎖

一 什麼是悲觀鎖?什麼是樂觀鎖?1 鎖 lock 在介紹樂觀鎖和悲觀鎖之前,我們先介紹下鎖。在日常生活中,我們經常接觸到鎖這個東西,比如家裡門上的鎖,自行車上的鎖,保險櫃上的鎖等,這些都是為了保障我們的財產安全而上的鎖。而在程式中,鎖是一種保障資料安全的機制和手段。在多併發的情況,當同時多個請求修改...