教育行業(yè)A股IPO第一股(股票代碼 003032)

全國咨詢/投訴熱線:400-618-4000

樂觀鎖有什么缺點(diǎn)?樂觀鎖的缺點(diǎn)介紹

更新時(shí)間:2020年12月08日17時(shí)15分 來源:傳智教育 瀏覽次數(shù):

好口碑IT培訓(xùn)

樂觀鎖有什么缺點(diǎn)?

樂觀鎖避免了悲觀鎖獨(dú)占對象的現(xiàn)象,同時(shí)也提高了并發(fā)性能,但它也有缺點(diǎn):

1.樂觀鎖只能保證一個(gè)共享變量的原子操作。如果多一個(gè)或幾個(gè)變量,樂觀鎖將變得力不從心,但互斥鎖能輕易解決,不管對象數(shù)量多少及對象顆粒度大小。

2.長時(shí)間自旋可能導(dǎo)致開銷大。假如CAS長時(shí)間不成功而一直自旋,會(huì)給CPU帶來很大的開銷。

3.ABA問題。CAS的核心思想是通過比對內(nèi)存值與預(yù)期值是否一樣而判斷內(nèi)存值是否被改過,但這個(gè)判斷邏輯不嚴(yán)謹(jǐn),假如內(nèi)存值原來是A,后來被一條線程改為B,最后又被改成了A,則CAS認(rèn)為此內(nèi)存值并沒有發(fā)生改變,但實(shí)際上是有被其他線程改過的,這種情況對依賴過程值的情景的運(yùn)算結(jié)果影響很大。解決的思路是引入版本號,每次變量更新都把版本號加一。、


猜你喜歡:

樂觀鎖和悲觀鎖的區(qū)別

Spring AOP實(shí)現(xiàn)原理和常見代理的區(qū)別

Java JDK是什么意思?有什么作用?

Java高級軟件工程師培訓(xùn)課程





下面是傳智教育公開的幾套Java課程,您可以下載和在線觀看學(xué)習(xí),如果想深入學(xué)習(xí)java并想找到不錯(cuò)的java開發(fā)相關(guān)工作,建議報(bào)班學(xué)習(xí)傳智教育Java高級軟件工程師課程。獲取【Java視頻教程+資料】加播妞1605146928606_課程資料.jpg:435946716。



0 分享到:
和我們在線交談!