turbo sirve que para operadores los lenguaje historia existe entre diferencias diferencia caracteristicas c++ multithreading multicore atomic

c++ - sirve - Funciones de comparación e intercambio de alto nivel(CAS)



para que sirve c++ (7)

Dejaré que otros enumeren las diversas API específicas de la plataforma, pero para referencia futura en C ++ 09 obtendrá el

atomic_compare_exchange()

operación en la nueva "Biblioteca de operaciones atómicas".

Me gustaría documentar qué funciones de alto nivel (es decir, C ++ no ensamblador en línea) o macros están disponibles para las primitivas atómicas Compare And Swap (CAS) ...

Por ejemplo, WIN32 en x86 tiene una familia de funciones _InterlockedCompareExchange en el encabezado <_intrin.h> .




glib, una biblioteca de sistema común en sistemas Linux y Unix (pero también compatible con Windows y Mac OS X), define varias operaciones atómicas , incluidas g_atomic_int_compare_and_exchange y g_atomic_pointer_compare_and_exchange .


java tiene esta operación CAS, también

ver aquí

hay usos prácticos para esto, como una tabla hash sin bloqueo utilizada en el sistema multiprocesador


Ha habido una serie de documentos del grupo de trabajo sobre este tema que proponen cambios a la Biblioteca Estándar de C ++. WG N2427 ( C ++ Atomic Types and Operations ) es el más reciente, que contribuye a la sección 29 - Biblioteca de operaciones atómicas - del estándar pendiente.