1.ABA问题 原因:原子操作只能对结果进行判断,不能对过程进行判断,比如一个值为A,想更新成C,在更新的过程中经历了A->B->A的过程,这时因为最终的结果还是A因此还是执行了A->C的操作 解决:基本上对结果不太影响,如果需要解决可以加版本号,对版本号也做判断 2.循环时间长开销大 原因:由于是乐观锁,如果CAS操作时有别的操作对目标进行操作,会等待然后重试,如果有个操作长时间没完成,会不断自旋导致cpu资源不断被占用,会给CPU带来非常大的执行开销。 解决: