Semaphore.TryAcquire Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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.
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()
.
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.