Definición
Conjunto de técnicas y mecanismos que coordinan el acceso simultáneo a recursos compartidos para que las operaciones conserven corrección, aislamiento e invariantes previstos pese a ejecuciones solapadas.

Principio

Principio
Imponer una serialización o un orden equivalente de operaciones en conflicto (mediante bloqueos, marcas de tiempo, versionado, validación optimista o protocolos transaccionales) de modo que las ejecuciones intercaladas sean observacionalmente equivalentes a alguna ejecución serial correcta o a un nivel de aislamiento especificado.

Demostración

Demostración
Un sistema de bases de datos usa bloqueo en dos fases: la transacción A adquiere un bloqueo de escritura en la cuenta X antes del débito; la transacción B queda bloqueada hasta que A confirma, evitando anomalías de actualización perdida y preservando el invariante del saldo.

Aplicación incorrecta

Aplicación incorrecta
Aplicar exclusión mutua de grano grueso a recursos no relacionados para evitar condiciones de carrera; esto evita carreras pero serializa innecesariamente operaciones independientes, provocando colapso del rendimiento y latencias injustas.

Consecuencia

Consecuencia
Aplicado correctamente, se previenen anomalías del estado compartido (actualizaciones perdidas, lecturas sucias, lecturas no repetibles) y se preservan los invariantes del programa, a costa de mayor sobrecarga de coordinación y posible contención o bloqueos si no se gestionan.

Inversión

Inversión
Sin control de concurrencia: las operaciones concurrentes proceden sin coordinación, dando lugar a carreras, resultados no deterministas, actualizaciones perdidas y violaciones de invariantes que dependen del planificador.

Límite

Límite
Se aplica a programas multihilo, transacciones de bases de datos y almacenes distribuidos donde el estado mutable compartido es accedido concurrentemente. Excluye acceso a datos puramente inmutables y ejecución secuencial monohilo. Las garantías dependen del nivel de aislamiento elegido y del modelo del sistema (síncrono vs asíncrono, fallo‑detención vs bizantino).

Tensión semántica

Tensión semántica
Tensión entre serializabilidad estricta (máxima corrección) y rendimiento/latencia: el bloqueo pesimista ofrece fuerte aislamiento pero alta contención; los métodos optimistas mejoran rendimiento pero pueden aumentar abortos. También existe tensión entre control local y coordinación global en entornos distribuidos.

Síntesis

Síntesis
El control de concurrencia engloba mecanismos que transforman patrones de acceso solapado en ejecuciones que satisfacen criterios de corrección elegidos, detectando y ordenando operaciones en conflicto y equilibrando la protección de invariantes con los costes de rendimiento.