在Java并发领域,总会提到原子操作,而Java作为一门高级语言,为了实现原子操作,提供了两种解决方案:1)加锁;2)通过CAS来实现,同时JDK在1.5开始,在JUC包下,并发编程大神Doug Lea提供了很多原子类,这些原子类都是通过CAS来实现的。接下来本文将主要介绍CAS相关的知识。
1. CAS简介
- CAS的全称是Compare And Swap,翻译过来就是比较并交换。假设内存中数据的值为V,旧的预期值为A,新的修改值为B。那么CAS操作可以分为三个步骤:1)将旧的预期值A与内存中的值V比较;2)如果A与V的值相等,那么就将V的值设置为B;3