Condividi tramite


Semaphore.TryAcquire Metodo

Definizione

Overload

TryAcquire()

Acquisisce un permesso da questo semaforo, solo se disponibile al momento della chiamata.

TryAcquire(Int32)

Acquisisce il numero specificato di permessi da questo semaforo, solo se tutti sono disponibili al momento della chiamata.

TryAcquire(Int64, TimeUnit)

Acquisisce un permesso da questo semaforo, se uno diventa disponibile entro il tempo di attesa specificato e il thread corrente non è stato interrotto Thread#interrupt.

TryAcquire(Int32, Int64, TimeUnit)

Acquisisce il numero specificato di permessi da questo semaforo, se tutti diventano disponibili entro il tempo di attesa specificato e il thread corrente non è stato interrotto da Thread#interrupt.

TryAcquire()

Acquisisce un permesso da questo semaforo, solo se disponibile al momento della chiamata.

[Android.Runtime.Register("tryAcquire", "()Z", "GetTryAcquireHandler")]
public virtual bool TryAcquire ();
[<Android.Runtime.Register("tryAcquire", "()Z", "GetTryAcquireHandler")>]
abstract member TryAcquire : unit -> bool
override this.TryAcquire : unit -> bool

Restituisce

true se un permesso è stato acquisito e false in caso contrario

Attributi

Commenti

Acquisisce un permesso da questo semaforo, solo se disponibile al momento della chiamata.

Acquisisce un permesso, se disponibile e restituisce immediatamente, con il valore true, riducendo il numero di permessi disponibili di uno.

Se non è disponibile alcun permesso, questo metodo restituirà immediatamente con il valore false.

Anche quando questo semaforo è stato impostato per usare un criterio di ordinamento equo, una chiamata a tryAcquire()<em will></em> acquisisce immediatamente un permesso se ne è disponibile uno, indipendentemente dal fatto che altri thread siano attualmente in attesa. Questo " barging" il comportamento può essere utile in determinate circostanze, anche se interrompe l'equità. Se si vuole rispettare l'impostazione di equità, usare #tryAcquire(long, TimeUnit) tryAcquire(0, TimeUnit.SECONDS) che è quasi equivalente (rileva anche l'interruzione).

Documentazione java per java.util.concurrent.Semaphore.tryAcquire().

Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dal progetto Open Source Android e usato in base ai termini descritti nella licenza Creative Commons 2.5 Attribuzione.

Si applica a

TryAcquire(Int32)

Acquisisce il numero specificato di permessi da questo semaforo, solo se tutti sono disponibili al momento della chiamata.

[Android.Runtime.Register("tryAcquire", "(I)Z", "GetTryAcquire_IHandler")]
public virtual bool TryAcquire (int permits);
[<Android.Runtime.Register("tryAcquire", "(I)Z", "GetTryAcquire_IHandler")>]
abstract member TryAcquire : int -> bool
override this.TryAcquire : int -> bool

Parametri

permits
Int32

numero di permessi per l'acquisizione

Restituisce

true se i permessi sono stati acquisiti e false in caso contrario

Attributi

Eccezioni

se permits è negativo

Commenti

Acquisisce il numero specificato di permessi da questo semaforo, solo se tutti sono disponibili al momento della chiamata.

Acquisisce il numero specificato di permessi, se disponibili, e restituisce immediatamente, con il valore true, riducendo il numero di permessi disponibili in base all'importo specificato.

Se sono disponibili autorizzazioni insufficienti, questo metodo restituirà immediatamente con il valore false e il numero di autorizzazioni disponibili rimane invariato.

Anche quando questo semaforo è stato impostato per usare un criterio di ordinamento equo, una chiamata a tryAcquire<em will></em> acquisisce immediatamente un permesso se ne è disponibile uno, indipendentemente dal fatto che altri thread siano attualmente in attesa. Questo " barging" il comportamento può essere utile in determinate circostanze, anche se interrompe l'equità. Se si vuole rispettare l'impostazione di equità, usare #tryAcquire(int, long, TimeUnit) tryAcquire(permits, 0, TimeUnit.SECONDS) che è quasi equivalente (rileva anche l'interruzione).

Documentazione java per java.util.concurrent.Semaphore.tryAcquire(int).

Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dal progetto Open Source Android e usato in base ai termini descritti nella licenza Creative Commons 2.5 Attribuzione.

Si applica a

TryAcquire(Int64, TimeUnit)

Acquisisce un permesso da questo semaforo, se uno diventa disponibile entro il tempo di attesa specificato e il thread corrente non è stato interrotto Thread#interrupt.

[Android.Runtime.Register("tryAcquire", "(JLjava/util/concurrent/TimeUnit;)Z", "GetTryAcquire_JLjava_util_concurrent_TimeUnit_Handler")]
public virtual bool TryAcquire (long timeout, Java.Util.Concurrent.TimeUnit? unit);
[<Android.Runtime.Register("tryAcquire", "(JLjava/util/concurrent/TimeUnit;)Z", "GetTryAcquire_JLjava_util_concurrent_TimeUnit_Handler")>]
abstract member TryAcquire : int64 * Java.Util.Concurrent.TimeUnit -> bool
override this.TryAcquire : int64 * Java.Util.Concurrent.TimeUnit -> bool

Parametri

timeout
Int64

tempo massimo di attesa per un permesso

unit
TimeUnit

unità temporale dell'argomento timeout

Restituisce

true se un permesso è stato acquisito e false se il tempo di attesa è trascorso prima che un permesso sia stato acquisito

Attributi

Eccezioni

se il thread corrente viene interrotto

Commenti

Acquisisce un permesso da questo semaforo, se uno diventa disponibile entro il tempo di attesa specificato e il thread corrente non è stato interrotto Thread#interrupt.

Acquisisce un permesso, se disponibile e restituisce immediatamente, con il valore true, riducendo il numero di permessi disponibili di uno.

Se non è disponibile alcun permesso, il thread corrente diventa disabilitato per scopi di pianificazione dei thread e rimane inattivo fino a quando non si verifica una delle tre cose seguenti: <ul<>li>Altri thread richiamano il #release metodo per questo semaforo e il thread corrente è prossimo a essere assegnato un permesso; o <altri>thread Thread#interrupt interrompe il thread corrente; o <li>Il tempo di attesa specificato è trascorso. </ul>

Se viene acquisito un permesso, viene restituito il valore true .

Se il thread corrente: <ul><li>ha lo stato interrotto impostato sulla voce di questo metodo oppure <li>è Thread#interrupt interrotto durante l'attesa di acquisire un permesso, </ul> viene InterruptedException generato e lo stato interrotto del thread corrente viene cancellato.

Se il tempo di attesa specificato è trascorso, viene restituito il valore false . Se l'ora è minore o uguale a zero, il metodo non attenderà affatto.

Documentazione java per java.util.concurrent.Semaphore.tryAcquire(long, java.util.concurrent.TimeUnit).

Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dal progetto Open Source Android e usato in base ai termini descritti nella licenza Creative Commons 2.5 Attribuzione.

Si applica a

TryAcquire(Int32, Int64, TimeUnit)

Acquisisce il numero specificato di permessi da questo semaforo, se tutti diventano disponibili entro il tempo di attesa specificato e il thread corrente non è stato interrotto da Thread#interrupt.

[Android.Runtime.Register("tryAcquire", "(IJLjava/util/concurrent/TimeUnit;)Z", "GetTryAcquire_IJLjava_util_concurrent_TimeUnit_Handler")]
public virtual bool TryAcquire (int permits, long timeout, Java.Util.Concurrent.TimeUnit? unit);
[<Android.Runtime.Register("tryAcquire", "(IJLjava/util/concurrent/TimeUnit;)Z", "GetTryAcquire_IJLjava_util_concurrent_TimeUnit_Handler")>]
abstract member TryAcquire : int * int64 * Java.Util.Concurrent.TimeUnit -> bool
override this.TryAcquire : int * int64 * Java.Util.Concurrent.TimeUnit -> bool

Parametri

permits
Int32

numero di permessi per l'acquisizione

timeout
Int64

tempo massimo di attesa per i permessi

unit
TimeUnit

unità temporale dell'argomento timeout

Restituisce

true se tutti i permessi sono stati acquisiti e false se il tempo di attesa trascorso prima che tutti i permessi siano stati acquisiti

Attributi

Eccezioni

se il thread corrente viene interrotto

se permits è negativo

Commenti

Acquisisce il numero specificato di permessi da questo semaforo, se tutti diventano disponibili entro il tempo di attesa specificato e il thread corrente non è stato interrotto da Thread#interrupt.

Acquisisce il numero specificato di permessi, se disponibili e restituisce immediatamente, con il valore true, riducendo il numero di permessi disponibili in base all'importo specificato.

Se sono disponibili autorizzazioni insufficienti, il thread corrente viene disabilitato per scopi di pianificazione dei thread e rimane inattivo fino a quando non si verifica una delle tre cose: ul>li Altri thread richiama uno dei #release() release metodi per questo semaforo e il thread corrente è accanto a essere assegnato e il numero di autorizzazioni disponibili soddisfa questa richiesta; o <li>Altri thread Thread#interrupt interrompe il thread corrente; o <li>><<Tempo di attesa specificato trascorso. </ul>

Se i permessi vengono acquisiti, viene restituito il valore true .

Se il thread corrente: <ul><li>ha lo stato interrotto impostato sulla voce di questo metodo; o <li>è Thread#interrupt interrotto durante l'attesa di acquisire i permessi, </ul> viene InterruptedException generato e lo stato interrotto del thread corrente viene cancellato. Tutti i permessi da assegnare a questo thread vengono invece assegnati ad altri thread che tentano di acquisire i permessi, come se i permessi fossero stati resi disponibili da una chiamata a #release().

Se il tempo di attesa specificato è trascorso, viene restituito il valore false . Se l'ora è minore o uguale a zero, il metodo non attenderà affatto. Tutti i permessi da assegnare a questo thread vengono invece assegnati ad altri thread che tentano di acquisire i permessi, come se i permessi fossero stati resi disponibili da una chiamata a #release().

Documentazione java per java.util.concurrent.Semaphore.tryAcquire(int, long, java.util.concurrent.TimeUnit).

Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dal progetto Open Source Android e usato in base ai termini descritti nella licenza Creative Commons 2.5 Attribuzione.

Si applica a