¿Funciona bloqueo como un semáforo booleano en un solo hilo?

zzazzles:

Necesito un mutex en Java que proporciona acceso exclusivo dentro de un mismo hilo y otro lado de las discusiones. Hacer algo muy simple como esto:

    Lock l = new ReentrantLock();
    for (int i = 0; i < 5; i++) {
      Log.d(TAG, "Lock = " l.tryLock());
    }

sorprendente me da cierto para cada llamada:

Lock = true
Lock = true
Lock = true
Lock = true
Lock = true

¿Por qué es esto, o no me fundamentalmente algo mal?

la riqueza:

Como su nombre lo dice que es reentrante , es decir, el hilo puede ser dueño de readquirirla.

Esto es una cosa buena, ya que de lo contrario podría fácilmente crear un solo punto muerto hilo.

Así que no lo hace no actuar como un semáforo booleano. Si quieres un semáforo booleano, use new Semaphore(1);. Aunque si tienen la intención de provocar una auto-bloqueo, asegúrese de que tiene otro hilo que puede resolverlo.

Supongo que te gusta

Origin http://10.200.1.11:23101/article/api/json?id=378909&siteId=1
Recomendado
Clasificación