什么是ABA問題
ABA問題:一個線程thread1讀到的數據是22,它對數據進行操作后變為23,又有一個線程thread2讀到數據22,對它進行操作后數據變為33并更新回去,又來一個線程3讀取數據33,更新數據為22后又更新回去,這時線程1進行更新操作,此時發現數據仍然為22和自己當讀取的一樣,所以更新數據為23,這種將A值變為B值又更新回A值的問題叫做ABA問題。
ABA問題的解決方法
解決ABA問題就是加上一個版本號,每一次更新版本號就加一。
ABA問題:一個線程thread1讀到的數據是22,它對數據進行操作后變為23,又有一個線程thread2讀到數據22,對它進行操作后數據變為33并更新回去,又來一個線程3讀取數據33,更新數據為22后又更新回去,這時線程1進行更新操作,此時發現數據仍然為22和自己當讀取的一樣,所以更新數據為23,這種將A值變為B值又更新回A值的問題叫做ABA問題。
解決ABA問題就是加上一個版本號,每一次更新版本號就加一。
本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。 如若轉載,請注明出處:http://www.pswp.cn/news/718421.shtml 繁體地址,請注明出處:http://hk.pswp.cn/news/718421.shtml 英文地址,請注明出處:http://en.pswp.cn/news/718421.shtml
如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!