1、某些处理器支持:CAS比较并交换有3个操作数-内存位置V、旧的预期值A和新值B。当且仅当V符合旧预期值A时,CAS用新值B原子化地更新V的值。否则它什么都不会做,不管怎么样,返回V的旧值。
2、JAVA代码在JAVA5。0中可以实现CAS
3、原子变量类(在处理器支持的情况下JVM可以使用CAS)
1)原子变量类提供了广义的volatile变量,以支持原子的、条件的读-写-改操作。
2)AtomicInteger代表一个int值,并提供了get和set方法,同样提供了compareAndSet方法(CASCAS比较并交换),以及原子化的插入、递增、递减等方法。
3)原子变量类共有12个,分成4组:计量器、域更新器、数组及复合变量。
4)原子化的数组类的元素是可以被原子化地更新的。