Un deadlock ocurre cuando dos transacciones se bloquean mutuamente: la transacción A mantiene bloqueado un recurso que la transacción B necesita, mientras que la transacción B mantiene bloqueado otro recurso que la transacción A necesita, dejando a ambas esperando indefinidamente sin que ninguna pueda avanzar.
Cómo lo resuelven los sistemas de bases de datos
La mayoría de los motores de bases de datos detectan automáticamente esta situación circular de espera, y resuelven el conflicto cancelando (haciendo rollback) a una de las dos transacciones involucradas, permitiendo que la otra continúe normalmente, y notificando el error a la aplicación para que decida cómo reintentar la operación cancelada.
