CAS(Compare - And - Swap)即比较并交换。
它是一种用于实现多线程同步的机制。在多线程环境中,当一个线程要修改共享变量时,它会先比较该变量的当前值与预期值是否相同,如果相同就进行交换(修改)操作。例如,假设共享变量的值为5,线程A想要将它修改为10。线程A首先会检查变量当前值是否为5(预期值),如果是,就将其修改为10;如果不是,就说明有其他线程已经修改了这个变量,此次修改操作就可能需要重新尝试。
CAS操作是原子性的,它在硬件层面保证了比较和交换这两个步骤的不可分割,从而避免了使用锁机制带来的线程阻塞和性能损耗,在高并发场景下能有效提高程序性能。