Skip to main content

Inicia sesión en CleanKata

Sigue tu progreso, gana XP y desbloquea todas las lecciones.

Al iniciar sesión aceptas nuestros Términos de uso y Política de privacidad.

Código Limpio70 XP7 min

Interbloqueo: Las 4 Condiciones

Un interbloqueo requiere las cuatro condiciones de Coffman simultáneamente — rompe cualquiera y el interbloqueo se vuelve imposible.

Anatomía del Interbloqueo

Un interbloqueo ocurre cuando las cuatro condiciones de Coffman se cumplen simultáneamente: (1) Exclusión Mutua — un recurso solo puede ser sostenido por un hilo a la vez; (2) Bloqueo y Espera — un hilo sostiene al menos un recurso y espera adquirir más; (3) Sin Apropiación — un recurso sostenido no puede ser quitado forzosamente; (4) Espera Circular — el hilo A espera un recurso del hilo B, que espera un recurso del hilo A. Elimina una sola condición y el interbloqueo se vuelve estructuralmente imposible.

Estrategias para Romper el Interbloqueo

Ataca una condición: (1) Rompe la Exclusión Mutua — usa estructuras sin bloqueo donde sea seguro. (2) Rompe el Bloqueo y Espera — solicita todos los recursos a la vez. (3) Rompe Sin Apropiación — implementa adquisición con tiempo de espera. (4) Rompe la Espera Circular — impone un orden total global en todos los recursos (siempre bloquea el mutex A antes que el B).

Desafío de Código

Corrige el interbloqueo imponiendo un orden global consistente de bloqueo.

💡Conclusión clave

Un interbloqueo necesita las cuatro condiciones de Coffman. Imponer un orden global consistente de bloqueo cuesta casi nada y rompe la Espera Circular.

🔧 Algunos ejercicios pueden tener errores. Si algo parece incorrecto, usa el botón Feedback (abajo a la derecha) para reportarlo — nos ayuda a corregirlo rápido.

Pista: El orden de bloqueo (siempre adquiere A antes que B en toda la base de código) elimina la Espera Circular — la 4ª condición de Coffman. Una condición eliminada = interbloqueo imposible.

✗ Tu versión

Interbloqueo: Las 4 Condiciones — CleanKata — CleanKata