Saltar al contenido

Condición de carrera

Un error en el que el resultado depende del orden temporal de accesos solapados.

También conocido comoRace condition
Arquitectura de software

¿Qué es una condición de carrera?

Surge cuando un resultado depende indebidamente del orden temporal de flujos concurrentes. Varias operaciones suelen acceder a estado compartido sin coordinación adecuada. No necesitan ejecutarse simultáneamente en distintos núcleos. Accesos intercalados también pueden producir un orden inadecuado.

En un portal ficticio, dos solicitudes de reserva comprueban el mismo último artículo disponible. Ambas ven inicialmente disponibilidad y podrían anunciar éxito sin protección adecuada. Comprobación y reserva deben protegerse juntas para que solo una solicitud pueda reservar el último artículo; únicamente el resultado determina el aviso. Abrir una transacción no prueba por sí solo que se impida el conflicto. El equipo verifica específicamente flujos solapados y la protección utilizada.

Fuentes