¿Cómo puede esto causar un punto muerto?

Estoy repasando mi Java, me han hecho esta pregunta en un ejercicio. ¿Cómo podría el siguiente resultado en un punto muerto?

private Object sync = new Object();

    public void methodA() throws InterruptedException {
        synchronized(this.sync) {
            Thread.sleep(1000);
        }
    }

    public void methodB() throws InterruptedException {
        synchronized(this.sync) {
            this.methodA();
        }
    }

Supongo que si el método B llama al método A mientras tiene activada la función Thread.sleep, ¿los dos métodos comenzarán a caer en cascada y causarán un sueño indefinido?

Pensamientos?

Respuesta 1

No, esto no causará un punto muerto.

Para crear estancamiento, se necesitan dos Threads ay by dos recursos xy y. Si amantiene un bloqueo activado xy también necesita un bloqueo activado y, pero bmantiene un bloqueo activado yy también necesita un bloqueo activado x, entonces se produce un punto muerto.

Solo tiene una cosa para bloquear aquí this.sync, por lo que no se produce un punto muerto.

Si methodBse ingresa mientras otro hilo ha llamado methodA, esperará hasta que se methodAlibere el bloqueo antes de continuar. Si methodAse ingresa mientras otro hilo ha llamado methodB, esperará hasta que se methodBlibere el bloqueo antes de continuar. Tenga en cuenta que el hecho de que las methodBllamadas methodAno importen, es el mismo bloqueo activado this.sync.

Respuesta: 2

Estoy actualizando una aplicación integrada existente (una MFP Ricoh) para admitir los lectores de tarjetas Omnikey 5321 v2 y Omnikey 5325 para fines de autenticación. Por ahora, dejaré a un lado el modelo 5325 (pero ...

Deseo enviar correo usando JavaMailAPI. He hecho algo de codificación pero no funciona arrojando Excepción: - Envío de mensaje Failedjavax.mail.AuthenticationFailedException: 534-5.7.9 Aplicación -...

Tener un pequeño problema inclinando mi cabeza alrededor de este. En mi aplicación de control de volumen, estoy tratando de configurar el perfil de sonido del sistema en SILENCIO SOLAMENTE sin disparar, no molestar, mi aplicación tiene acceso a ...

Estoy programando una definición recursiva de la función seno en Java usando su aproximación Taylor, pero obteniendo una noSuchMethodException al ejecutar el código. Esto es lo que tengo hasta ahora: público ...