title: 什么是ABA问题？
desc: 我知道CAS 乐观锁，就是看版本号，大于就更新，小于就重来。<br>ABA是什么我就不知道了，能具体举一个例子说明一下么？
topic: Java
content: 你确定你知道CAS？ CAS：对于内存中的某一个值V，提供一个旧值A和一个新值B。如果提供的旧值V和A相等就把B写入V。这个过程是原子性的。CAS执行结果要么成功要么失败，对于失败的情形下一班采用不断重试。或者放弃。ABA：如果另一个线程修改V值假设原来是A，先修改成B，再修改回成A。当前线程的CAS操作无法分辨当前V值是否发生过变化。关于ABA问题我想了一个例子：在你非常渴的情况下你发现一个盛满水的杯子，你一饮而尽。之后
answerer_tags: 码农