trabalho não bloqueio como um semáforo boolean em um único segmento?

zzazzles:

Eu preciso de um mutex em Java que fornece acesso exclusivo ambos dentro de uma única linha e entre segmentos. Fazendo algo muito simples como isto:

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

surpreendente dá-me a verdade para cada chamada:

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

Por que isso é, ou eu fundamentalmente algo errado?

riqueza:

Como o nome diz que é re-entrantes , ou seja, o segmento proprietário pode readquiri-la.

Isso é uma coisa boa, caso contrário você pode facilmente criar um único impasse fio.

Portanto, não ele não agir como um semáforo boolean. Se você quer um semáforo booleano, use new Semaphore(1);. Embora se você pretende causar um auto-bloqueio, verifique se você tem outro segmento que pode resolvê-lo.

Acho que você gosta

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