概念:什么是ABA问题呢?
假设有个共享变量的值为A,此时线程1去修改这个变量,在线程1修改的时候,线程2已经把这个变量修改成了B,然后线程3又把这个变量修改成了A。当线程1修改完毕时根据旧的预期值和共享内存的实际值进行比较得到的结果是相等的,则线程1认为变量没被修改过,则线程1提交成功,但其实变量已经被修改,此时的A非彼A,这就是ABA问题。
我的疑问:
1、按照ABA问题的概念,我上图画的思维逻辑是不是正确的,如果是正确的,那这个ABA问题似乎没有什么弊端漏洞呀,银行最终的存款余额还是正确的。
2、如果我上图画的是错的,那需要怎么去理解呢?
我也看了其他大佬的相关博客,但基本很难看明白他们画的图,所以就自己画了这个来理解ABA问题场景。