Cómo generar interbloqueos de Java mediante programación y cómo analizar interbloqueos

Publicado: 2013-07-03

Ejemplo de bloqueo de subprocesos de Java por Crunchify

Deadlock es una situación de programación donde dos o más subprocesos se bloquean para siempre, esta situación surge con al menos dos subprocesos y dos o más recursos.

Aquí he escrito un programa simple que causará un escenario de interbloqueo y luego veremos cómo analizarlo.

Aquí hay un ejemplo simple de Java:

Producción:

Mientras su aplicación se bloquea como en el ejemplo anterior, puede obtener un volcado de subprocesos y ver los subprocesos bloqueados.

Por ejemplo, en Mac, puede hacer Ctrl-\ o simplemente usar jstack y procesar la identificación para obtener el volcado del hilo, lo que hace que sea muy obvio dónde está el punto muerto.

En este ejemplo, el volcado de subprocesos se ve así:

Notado aquí threads => Deadlock Situación de interbloqueo aquí.. En el siguiente ejemplo, se proporcionará un programa Java simple para generar el volcado de hilo anterior mediante programación.