并发

CAS的缺点和问题解决

在并发编程中CAS的缺点和问题,如ABA问题,自旋锁消耗问题、多变量共享一致性问题ABA:问题描述:线程t1将它的值从A变为B,再从B变为A。同时有线程t2要将值从A变为C。但CAS检查的时候会发现没有改变,但是实质上它已经发生了改变。可能会造成数据的缺失。解决方法:CAS还是类似于乐观锁,同数据乐观锁的方式给它加一个版本号或者时间戳,如AtomicStampedReference自旋消耗资源:问

在并发编程中CAS的缺点和问题,如ABA问题,自旋锁消耗问题、多变量共享一致性问题

ABA:

问题描述:线程t1将它的值从A变为B,再从B变为A。同时有线程t2要将值从A变为C。但CAS检查的时候会发现没有改变,但是实质上它已经发生了改变 。可能会造成数据的缺失。

解决方法:CAS还是类似于乐观锁,同数据乐观锁的方式给它加一个版本号或者时间戳,如AtomicStampedReference

自旋消耗资源:

问题描述:多个线程争夺同一个资源时,如果自旋一直不成功,将会一直占

原创不易,完成人机校验,阅读全文

相关推荐