Compartilhar via


Semaphore.TryAcquire Método

Definição

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á.

Documentação Java para java.util.concurrent.Semaphore.tryAcquire(long, java.util.concurrent.TimeUnit).

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().

Documentação Java para java.util.concurrent.Semaphore.tryAcquire(int, long, java.util.concurrent.TimeUnit).

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