什么是ABA问题
ABA问题:一个线程thread1读到的数据是22,它对数据进行操作后变为23,又有一个线程thread2读到数据22,对它进行操作后数据变为33并更新回去,又来一个线程3读取数据33,更新数据为22后又更新回去,这时线程1进行更新操作,此时发现数据仍然为22和自己当读取的一样,所以更新数据为23,这种将A值变为B值又更新回A值的问题叫做ABA问题。
ABA问题的解决方法
解决ABA问题就是加上一个版本号,每一次更新版本号就加一。
什么是ABA问题及ABA问题的解决方法。什么是 ABA 问题 ABA 问题 一个线程 thread1 读到的数据是 22 它对数据进行操作后变为 23 又有一个线程 thread2 读到数据 22 对它进行操作后数据变为 33 并更新回去 又来一个线程 3 读取数据 33 更新数据为 22 后又更新回去 这时线程 1 进行更新操作
ABA问题:一个线程thread1读到的数据是22,它对数据进行操作后变为23,又有一个线程thread2读到数据22,对它进行操作后数据变为33并更新回去,又来一个线程3读取数据33,更新数据为22后又更新回去,这时线程1进行更新操作,此时发现数据仍然为22和自己当读取的一样,所以更新数据为23,这种将A值变为B值又更新回A值的问题叫做ABA问题。
解决ABA问题就是加上一个版本号,每一次更新版本号就加一。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/22704.html