小伙伴们可以在参考思维导图的时候,去看java.util.concurrent的源码,理解max~
ABA问题:
耳冉现在有100块钱,按顺序执行线程应该是执行线程1、线程3(执行线程2时仅剩50块钱),所以最后结果耳冉还剩100块钱。
若是在线程1读的时候, 线程2先进行操作,则剩50块钱(此时线程1还在读);
若是在线程1读的时候,线程3再进程操作,则剩100块钱(此时线程1还在读);
这是线程1读到了耳冉还有100块钱,就取走50 ,因此只剩下50块钱
小伙伴们可以在参考思维导图的时候,去看java.util.concurrent的源码,理解max~
ABA问题:
耳冉现在有100块钱,按顺序执行线程应该是执行线程1、线程3(执行线程2时仅剩50块钱),所以最后结果耳冉还剩100块钱。
若是在线程1读的时候, 线程2先进行操作,则剩50块钱(此时线程1还在读);
若是在线程1读的时候,线程3再进程操作,则剩100块钱(此时线程1还在读);
这是线程1读到了耳冉还有100块钱,就取走50 ,因此只剩下50块钱