recuperar la cerradura

Estoy declarando una variable de tipo Condición:

private Condition waitingCond;

Luego, en el constructor de Bridgedeclaro una variable de condición asociada a la misma variable:

waitingCond = lock.NewCondition(); 

Luego, en un método de bloqueo, tengo esto:

public void getIn(int direction) throws InterruptedException{
    lock.lock(); 
    try{
        if(direction == Car.DIR_NORTH){
            while((nSudWaiting>0)) 
            waitingCond.await(); 
            nNordWaiting++;  
            //...............
        } else {
            //............
        } waitingCond.signal();
    }
    finally{ 
        lock.unlock() 
    }
}

Preguntas:

  1. ¿Tengo razón al decir que aquí, el método de espera implica liberar el bloqueo? waitingCond.await(); // waiting release lock

  2. Si lo que dije arriba es correcto, ¿la siguiente declaración habilita el bloqueo nuevamente (el hilo mantiene el bloqueo)?

    waitingCond.await(); // waiting release lock
    nNordWaiting++; // getting back the lock

Lo que me gustaría entender es: ¿cualquier tipo de declaración siguiente waitingCond.await();puede volver a adquirir el bloqueo?

Muchas gracias.

Respuesta 1

Estoy usando la herramienta GATE para el procesamiento del lenguaje natural ... Estoy usando el código Java para leer líneas de la oración y obtener las palabras clave ... qué modificación se debe hacer en xml criollo para leer completa ...

Estoy haciendo una aplicación para Android, estoy usando la API de Google Directions para obtener y analizar cada tramo de la ruta. Estoy mostrando la ruta en el mapa (eso ya está funcionando) Quiero mostrar una lista de ...

Soy un principiante que está aprendiendo a escribir juegos en JAVA. En el juego que estoy escribiendo, intento que sea compatible con múltiples modos de visualización. Primero déjame contarte un poco sobre cómo estoy configurando el ...

Tengo dificultades con la biblioteca Processing OpenCV: http://ubaa.net/shared/processing/opencv/index.html Estoy ejecutando el código de muestra más básico posible: import hypermedia.video. *; ...