2013-06-03 79 views
1

誰能給我總結一下比較和交換編程的優缺點嗎? (例如多核心CPU的性能)CAS編程的優缺點

這裏是和例子在Java中:

/** 
* Atomically increments by one the current value. 
* 
* @return the updated value 
*/ 
public final int incrementAndGet() { 
    for (;;) { 
     int current = get(); 
     int next = current + 1; 
     if (compareAndSet(current, next)) 
      return next; 
    } 
} 

===編輯===

請您談談這特別是在單/多核CPU。

回答

2

優勢:沒有鎖,因此沒有僵局,通常更好的可擴展

缺點:餓死的危險(除非該算法也無等待,但這通常並非如此)