Saltar al contenido
Excepciones de JavaGrave
Deadlock

Deadlock

Dos o más hilos quedan bloqueados indefinidamente, esperando cada uno a que el otro libere un bloqueo.

jvmspring

Qué causa este error

El hilo A retiene el bloqueo 1 y espera el bloqueo 2, mientras que el hilo B retiene el bloqueo 2 y espera el bloqueo 1. Ningún hilo puede avanzar, lo que provoca que la aplicación se cuelgue. Es una condición en tiempo de ejecución, no una excepción.

Cómo solucionarlo

Adquiere siempre los bloqueos en un orden consistente. Usa tryLock() con tiempos de espera. Minimiza el alcance de los bloques synchronized. Usa las utilidades de java.util.concurrent en lugar de bloqueo manual. Usa jstack para detectar deadlocks.

Documentación Oficial

Códigos de Error Relacionados