CAS (Compare and Swap) 是一種并發控制技術,用于在多線程環境下實現原子操作。CAS 操作包括三個操作數:一個內存位置的值 V,一個期望的值 A,以及一個新值 B。CAS 將內存位置的值與期望的值進行比較,如果相等,則更新為新值 B。整個比較和更新操作是一個原子操作,能夠保證在并發情況下不會出現數據不一致的問題。
在 Java 中,CAS 主要通過 Atomic 包下的類來實現,比如 AtomicInteger、AtomicLong 等。這些類提供了一系列的原子操作方法,如 compareAndSet()、getAndIncrement()、getAndSet() 等,可以用來實現線程安全的操作。CAS 在并發編程中被廣泛應用,在保證性能的同時保證了線程安全。