还有就是这个atomic包,使用可以达到synchronized的效果,实现原理就是CAS了。
CAS也叫自旋锁,是乐观锁的主要实现原理,其实很简单和数据库差不多,数据库是搞一个字段A,修改时把A获取+1,刷新时,比较如果比A大,成功,一样,失败。
CAS也一样,只是用在线程里面,他就是旧的预期值A和内存地址的V比较,一样,ok,不一样,失败,重新获取。
ABA问题
这个问题你想想,在银行存取款时就有大问题了。
解决办法就是加个版本号,每次在比较一次版本号。
这个网站讲的很好
https://blog.csdn.net/qq_32998153/article/details/79529704
网友评论