什么是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.mzph.cn/news/718421.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!