Semaphore.TryAcquire Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Sobrecargas
TryAcquire() |
Adquire uma permissão deste semáforo, somente se estiver disponível no momento da invocação. |
TryAcquire(Int32) |
Adquire o número determinado de alvarás deste semáforo, somente se todos estiverem disponíveis no momento da invocação. |
TryAcquire(Int64, TimeUnit) |
Adquire uma permissão deste semáforo, se um se torna disponível dentro do tempo de espera determinado e o thread atual não foi Thread#interrupt interrompido. |
TryAcquire(Int32, Int64, TimeUnit) |
Adquire o número determinado de permissões deste semáforo, se todas ficarem disponíveis dentro do tempo de espera determinado e o thread atual não tiver sido interrompido por Thread#interrupt. |
TryAcquire()
Adquire uma permissão deste semáforo, somente se estiver disponível no momento da invocação.
[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
Retornos
true
se uma licença foi adquirida e false
de outra forma
- Atributos
Comentários
Adquire uma permissão deste semáforo, somente se estiver disponível no momento da invocação.
Adquire um alvará, se estiver disponível e devolve imediatamente, com o valor true
, reduzindo o número de alvarás disponíveis em um.
Se nenhuma permissão estiver disponível, esse método retornará imediatamente com o valor false
.
Mesmo quando esse semáforo foi configurado para usar uma política de pedidos justa, uma chamada para tryAcquire()
<em>adquirirá<> imediatamente uma permissão se estiver disponível, independentemente de outros tópicos estarem ou não aguardando no momento. Isso " barbear" O comportamento pode ser útil em certas circunstâncias, mesmo que quebre a equidade. Se você quiser honrar a configuração de justiça, use #tryAcquire(long, TimeUnit) tryAcquire(0, TimeUnit.SECONDS)
o que é quase equivalente (também detecta interrupção).
Documentação Java para java.util.concurrent.Semaphore.tryAcquire()
.
Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Android Open Source Project e usado de acordo com os termos descritos na Creative Commons 2.5 Attribution License.
Aplica-se a
TryAcquire(Int32)
Adquire o número determinado de alvarás deste semáforo, somente se todos estiverem disponíveis no momento da invocação.
[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
Parâmetros
- permits
- Int32
o número de licenças de aquisição
Retornos
true
se as licenças foram adquiridas e false
de outra forma
- Atributos
Exceções
se permits
for negativo
Comentários
Adquire o número determinado de alvarás deste semáforo, somente se todos estiverem disponíveis no momento da invocação.
Adquire o número determinado de licenças, se estiverem disponíveis, e retorna imediatamente, com o valor true
, reduzindo o número de permissões disponíveis no valor determinado.
Se as licenças disponíveis forem insuficientes, este método retornará imediatamente com o valor false
e o número de permissões disponíveis não será alterado.
Mesmo quando esse semáforo foi configurado para usar uma política de pedidos justa, uma chamada para tryAcquire
<em>adquirirá<> imediatamente uma permissão se estiver disponível, independentemente de outros tópicos estarem ou não aguardando no momento. Isso " barbear" O comportamento pode ser útil em certas circunstâncias, mesmo que quebre a equidade. Se você quiser honrar a configuração de justiça, use #tryAcquire(int, long, TimeUnit) tryAcquire(permits, 0, TimeUnit.SECONDS)
o que é quase equivalente (também detecta interrupção).
Documentação Java para java.util.concurrent.Semaphore.tryAcquire(int)
.
Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Android Open Source Project e usado de acordo com os termos descritos na Creative Commons 2.5 Attribution License.
Aplica-se a
TryAcquire(Int64, TimeUnit)
Adquire uma permissão deste semáforo, se um se torna disponível dentro do tempo de espera determinado e o thread atual não foi Thread#interrupt interrompido.
[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
Parâmetros
- timeout
- Int64
o tempo máximo de espera por uma autorização
- unit
- TimeUnit
A unidade de tempo do timeout
argumento
Retornos
true
se uma autorização foi adquirida e false
se o tempo de espera decorreu antes da obtenção de uma autorização
- Atributos
Exceções
se o thread atual for interrompido
Comentários
Adquire uma permissão deste semáforo, se um se torna disponível dentro do tempo de espera determinado e o thread atual não foi Thread#interrupt interrompido.
Adquire um alvará, se estiver disponível e devolve imediatamente, com o valor true
, reduzindo o número de alvarás disponíveis em um.
Se nenhuma permissão estiver disponível, o thread atual será desabilitado para fins de agendamento de thread e ficará inativo até que uma das três coisas aconteça: <ul><li>Algum outro thread invoca o método para esse semáforo #release
e o thread atual é o próximo a receber uma permissão; ou <li>Algum outro thread Thread#interrupt interrompe o thread atual; ou <li>O tempo de espera especificado decorre. </ul>
Se uma licença for adquirida, o valor true
é devolvido.
Se o thread atual: <ul><li>tiver seu status interrompido definido na entrada deste método, ou <li>for Thread#interrupt interrompido enquanto aguarda para adquirir uma permissão, </ul> então InterruptedException
será lançado e o status interrompido do thread atual será limpo.
Se o tempo de espera especificado passar, o valor false
será retornado. Se o tempo for menor ou igual a zero, o método não esperará.
Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Android Open Source Project e usado de acordo com os termos descritos na Creative Commons 2.5 Attribution License.
Aplica-se a
TryAcquire(Int32, Int64, TimeUnit)
Adquire o número determinado de permissões deste semáforo, se todas ficarem disponíveis dentro do tempo de espera determinado e o thread atual não tiver sido interrompido por 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
Parâmetros
- permits
- Int32
o número de licenças de aquisição
- timeout
- Int64
o tempo máximo de espera pelas autorizações
- unit
- TimeUnit
A unidade de tempo do timeout
argumento
Retornos
true
se todas as autorizações foram adquiridas e false
se o tempo de espera decorreu antes de todas as autorizações terem sido adquiridas
- Atributos
Exceções
se o thread atual for interrompido
se permits
for negativo
Comentários
Adquire o número determinado de permissões deste semáforo, se todas ficarem disponíveis dentro do tempo de espera determinado e o thread atual não tiver sido interrompido por Thread#interrupt.
Adquire o número determinado de licenças, se estiverem disponíveis e retorna imediatamente, com o valor true
, reduzindo o número de licenças disponíveis na quantidade dada.
Se permissões insuficientes estiverem disponíveis, o thread atual será desabilitado para fins de agendamento de thread e ficará inativo até que uma das três coisas aconteça: <ul><li>Algum outro thread invoca um dos métodos para esse semáforo #release() release
e o thread atual é o próximo a ser atribuído permissões e o número de permissões disponíveis satisfaz essa solicitação; ou <li>Algum outro thread Thread#interrupt interrompe o thread atual; ou <li>O tempo de espera especificado decorre. </ul>
Se as licenças forem adquiridas, o valor true
é devolvido.
Se o thread atual: <ul><li>tiver seu status interrompido definido na entrada deste método, ou <li>for Thread#interrupt interrompido enquanto aguarda para adquirir as permissões, </ul> então InterruptedException
será lançado e o status interrompido do thread atual será limpo. Quaisquer permissões que deveriam ser atribuídas a este thread, em vez disso, são atribuídas a outros threads tentando adquirir permissões, como se as permissões tivessem sido disponibilizadas por uma chamada para #release()
.
Se o tempo de espera especificado passar, o valor false
será retornado. Se o tempo for menor ou igual a zero, o método não esperará. Quaisquer permissões que deveriam ser atribuídas a este thread, em vez disso, são atribuídas a outros threads tentando adquirir permissões, como se as permissões tivessem sido disponibilizadas por uma chamada para #release()
.
Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Android Open Source Project e usado de acordo com os termos descritos na Creative Commons 2.5 Attribution License.