Compare and Swap(CAS)

CAS(Compare and Swap)是个原子操作。拿到一个新值后,CAS将其与内存中的值进行比较,若内存中的值和这个值不一样,则将这个值写入内存,否则,不做操作。在Java的

 java.util.concurrent.atomic包中对CAS的实现是通过synchronized关键字实现的:

 public final synchronized boolean compareAndSet(long expect, long update) { 
        if (value == expect) {                                                  
            value = update;                                                    
            return true;                                                        
        } else {                                                                
            return false;                                                       
        }                                                                      
    }



原文地址:https://www.cnblogs.com/jubincn/p/3381099.html