sponsored links

面試官:有沒有比鎖更快的鎖?你知道嗎?

面試官:瞭解鎖麼?

小王:我X,這個問題不難呀!Lock、ReadWriteLock、Synchronized都在專案中使用過。

面試官:那有沒有比Lock、ReadWriteLock、Synchronized鎖更快的鎖呢?

小王:這這。。。。。。沉思好久。。。。。。問地好深呀,真不知道。

因為在專案中小王使用最多的就是這三種鎖,這個面試讓他知道了還有比鎖更快的鎖。

避免鎖:讀-複製-更新(RCU)

最快的鎖是根本沒有鎖!!!

最快的鎖是根本沒有鎖!!!

最快的鎖是根本沒有鎖!!!

重要的話重複三遍。在沒有鎖的情況,我們是否允許對共享資料進行併發讀寫訪問。在通常情況下,答案是否定的。

假設記憶體中存放一個數組數字Array{1,5,6,7,8,9},程序A正在對該陣列數字進行排序,而程序B正在計算其平均值。因為A對陣列數值前後來回移動,所以B可能得到的不同的數值,得到的結果可能是任意值,結果幾乎肯定是錯誤的。然而,在某些情況下,我們可以允許寫操作來更新資料結構,即便還有其他的程序正在使用它。竅門在於確保每個讀操作要麼讀取舊的資料版本,要麼讀取新的資料版本,但絕不能是新舊資料的奇怪組合。

舉例說明:樹型資料結構(注:在樹中插入一個節點,然後移除一個分支,整個過程中不涉及鎖)

面試官:有沒有比鎖更快的鎖?你知道嗎?


新增一個節點

面試官:有沒有比鎖更快的鎖?你知道嗎?


移除兩個節點

該樹型結構中,讀操作從根部到葉子遍歷整個樹。在圖的上半部分,加入一個新的節點X。為了實現這一操作,我們要讓這個節點在樹中可見之前使它”恰好正確“:我們對節點X中的所有值進行初始化,包括它的子節點指標。然後透過原子寫操作,使X成為A的子節點。所有的讀操作都不會讀到前後不一致的版本。在圖的下半部分,我們接著移除B和D。首先,將A的左子節點指標指向C。所有原本在A中的讀操作將會後續讀到節點C,而永遠不會讀B和D。也就是說。它們將只會讀到新版資料。同樣,所有原本在A中的讀操作將會後續讀到節點C,而永遠不會讀B和D。也就是說,它們將只會讀到新版資料。同樣。所有當前在B和D中的讀操作將繼續依照原始的資料結構指標並且讀取舊版資料。所有操作均正確進行,我們不需要鎖住任何東西。而不需要鎖住資料結構就能夠移去B和D的主要原因就是RCU,將更新過程中的移除和再分配過程分離開來。

總結

RCU的優點是既允許多個程序對共享資料進行的讀操作同時執行,又允許多個程序對共享資料進行讀操作和寫操作同時執行。

分類: 健康
時間: 2021-12-26

相關文章

哪些泡茶對腎、肝有好處?養肝、補腎到底是養什麼補什麼?

哪些泡茶對腎、肝有好處?養肝、補腎到底是養什麼補什麼?
我們平時很多人經常說自己要養肝補腎,要麼吃什麼菊花決明子茶,要麼用肉蓯蓉或鎖陽等泡水喝.那麼我們說的養肝到底養的是什麼,補腎又補的是什麼,你們知道嗎?今天我們就來聊聊這個話題! 如果我們沒弄清楚養肝養 ...

秋燥分兩種 進補不對等於白補
秋燥分兩種 進補不對等於白補 通訊員 王蕊 胡梟峰 最近天氣逐漸轉涼,浙江大學醫學院附屬第一醫院中醫專家表示,每年這個時候,都是秋季燥咳的高發期,會有不少患者因為乾咳前來就診.如何預防燥咳,專家給出了 ...

骨頭湯補鈣、紅棗補血,豬蹄補膠原…… 這些食補騙了你多少年

骨頭湯補鈣、紅棗補血,豬蹄補膠原…… 這些食補騙了你多少年
喝骨頭湯補鈣.紅棗能補血,豬蹄補膠原--這些食補誤區,你"中招"了幾個!(統籌|陳昌 整理|張莉 設計|趙健 ) 來源: 長江日報

藥補不如食補,用食物補氣養血

藥補不如食補,用食物補氣養血
在日常生活中,各種各樣的身體不適總是伴隨著我們.生活越來越忙,壓力越來越大,總有些這樣那樣的因素困擾著我們,包括病理上的和心理上的.出現這些問題的時候,我們第一時間想到的就是求醫問藥.大部分人由於工作 ...

盲目吃補品,身體可能越“補”越差!補虛的方法,還有這些
文/ 孫麗紅 上海中醫藥大學 副教授 近些年,很多人會跟風"進補",看到別人吃膏方自己也跟著吃膏方:有些人則是看到貴的補品就一定要嘗上一嘗:還有些人是出於攀比心理,認為別人都在吃補 ...

藥師說藥|補鈣,您補對了嗎

藥師說藥|補鈣,您補對了嗎
鈣是人體重要的礦物質,其中99%存在於骨骼和牙齒內,鈣離子和磷構成羥磷石灰結晶沉著於膠原組成的基質上,維持著骨的堅固性,其餘1%分佈在血液.神經及各種軟組織中.當機體缺鈣時,一方面因缺少構成骨的原材料 ...

哪些食物養肝護肝補肝,養肝護肝補肝的食物有哪些?

哪些食物養肝護肝補肝,養肝護肝補肝的食物有哪些?
肝臟主要負責身體的排毒和解毒,平時生活中我們吃的食物或者沾染的細菌,就靠它排毒.肝臟對於人體的身體健康是極其重要的,因此我們的日常飲食應該吃一些對肝臟好的食物.那麼哪些食物補肝呢?接下來看看吧. 哪些 ...

農村修路佔地有補償嗎?補多少?怎麼補?找哪個部門?一文全解

農村修路佔地有補償嗎?補多少?怎麼補?找哪個部門?一文全解
隨著農村"路路通"."村村通"工程的實施,很多農村朋友也都享受到了通路後的便捷.但是農村修路是一個非常浩大的工程,國家在農村道路建設上還會撥付專項的資金.俗話說 ...

秋天進補要多吃這菜,鮮美又便宜,我三天兩頭必做一次汁都不剩下

秋天進補要多吃這菜,鮮美又便宜,我三天兩頭必做一次汁都不剩下
民間俗話說:"秋天進補,冬天打虎."秋天是一年中最適合進補的兩個季節,在秋季節進補能事半功倍. 在這個季節,不多吃點如何挨住冷冬?因此不少人都以秋季進補的名義大口吃肉,開始幸福地貼 ...

“貼秋膘”、天涼了進補?專家:小心消化系統來“找茬”

“貼秋膘”、天涼了進補?專家:小心消化系統來“找茬”
每到秋冬季節,民間都有進補的習俗.特別在"立秋"前後有"貼秋瞟"一說.民間流行在立秋這天以懸秤稱人,將體重與立夏時對比來檢驗肥瘦,體重減輕叫"苦夏&q ...

秋季進補要補而不峻、防燥不膩
來源:揚子晚報 秋分之後,氣候逐漸乾燥,夜晚雖然涼爽,但白天有時氣溫仍較高.中醫認為,熱能傷津.傷氣,燥勝則消耗津液.東南大學附屬中大醫院中醫內科主治醫師侯茜提醒大家,秋分過後養生保健應做好適當進補. ...

現代人如何補氣血?
那到底怎麼補氣血呢? 針對上篇文章介紹的造成氣血虧虛的原因(具體請看9月24日文章 進補--你真的需要嗎?),減少思慮,清淡適量的飲食,再有適度的運動,規律的作息就好,此四條就是最好的方法,不用去花冤 ...

初秋養生重收斂 健脾補肝防“秋燥”
秋季養生在對精神情志.飲食起居.運動鍛鍊等方面進行調攝時,皆應以養"收"為原則.那麼,如何做好秋季養生保健工作呢? 睡眠:早睡早起可防病 秋季養生首先調整的就是睡眠時間,早睡早起是 ...

都說雞湯是大補,多數人喝錯了,消化科醫生告訴你實情

都說雞湯是大補,多數人喝錯了,消化科醫生告訴你實情
"雞是天地結合的生靈,雞湯是上天賜予我們的聖品".雞湯自古以來都是老百姓口口相傳的萬能"補品",不論是大病初癒,還是勞累過度.身體虛弱.手腳不溫,都要喝雞湯.從 ...

跟鄧校長學養生之十七——說“虛”論“補”
一.何為"虛" --虛則"虧"也,不是也. 二.需之區別: 需要和必須 需要代表有需求,但可以等等,也可以替換.而必須代表迫切性,代表不能等,急迫的,非要不可. ...

談談補鈣的相關知識
鈣是維持人體正常生理功能不可缺少的一種礦物質,是構成人體骨骼和牙齒的重要成分,而且鈣還有鎮靜,安神,脫敏,止抽搐,凝血止血,平衡電解質,維持心臟,肌肉,神經正常興奮性,還是人體許多酶的啟用因子.所以在 ...

開刀傷元氣,肺部手術後要不要食補?

開刀傷元氣,肺部手術後要不要食補?
來源:首都醫科大學宣武醫院胸外科 老話講開刀傷元氣,很多患者切了肺後認為自己"元氣大傷",出院回家休養就會有特別想要好好補補的想法. 那麼中醫講的元氣是什麼呢?普遍來講中醫所說的& ...

兒童要不要補鈣?

兒童要不要補鈣?
兒童要不要補鈣?如何補鈣?這是許多家長關心的問題.一般來說,兒童每天攝入的奶類及奶製品能夠補充足夠的鈣,如果需要補鈣,要注意同時補充維生素D的攝入. 容易發生缺鈣的兩大年齡階段一是嬰幼兒期,一是青春期 ...

補鈣只能吃鈣片?快記住這個補鈣“公式”

補鈣只能吃鈣片?快記住這個補鈣“公式”
30歲以後,人體的骨骼就是在做"減法"了,也就是說,骨頭的量在不斷流失.而鈣就是骨骼的"能量",人體一旦缺乏鈣,骨密度就會慢慢下降,容易引起骨質疏鬆等一系列骨健 ...

老年人合理補鈣防治骨質疏鬆

老年人合理補鈣防治骨質疏鬆
隨著科技和醫療的發展,老年人越來越注重養生,在諸多養生方法中,老年人最積極的莫過於補鈣. 眾所周知,補鈣是為了防治骨質疏鬆,那骨質疏鬆究竟有哪些危害呢?老年人覺得腰背痛.腿疼.關節痛甚至全身痛,身高變 ...