2013-06-03 2 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; 
    } 
} 

=== РЕДАКТИРОВАТЬ ===

Пожалуйста, расскажите об этом специально в одинарные/центральных процессоров.

ответ

2

Преимущества: нет замков, следовательно, не тупикового и в целом лучше масштабируемости

Неудобства: риск голода (если алгоритм не будет также ждать бесплатно, но это, как правило, не бывает)