Semaphore.AcquireUninterruptibly 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
| Nome | Description |
|---|---|
| AcquireUninterruptibly() |
Adquire uma licença desse semáforo, bloqueando até que uma esteja disponível. |
| AcquireUninterruptibly(Int32) |
Adquire o número determinado de licenças desse semáforo, bloqueando até que todas estejam disponíveis. |
AcquireUninterruptibly()
Adquire uma licença desse semáforo, bloqueando até que uma esteja disponível.
[Android.Runtime.Register("acquireUninterruptibly", "()V", "GetAcquireUninterruptiblyHandler")]
public virtual void AcquireUninterruptibly();
[<Android.Runtime.Register("acquireUninterruptibly", "()V", "GetAcquireUninterruptiblyHandler")>]
abstract member AcquireUninterruptibly : unit -> unit
override this.AcquireUninterruptibly : unit -> unit
- Atributos
Comentários
Adquire uma licença desse semáforo, bloqueando até que uma esteja disponível.
Adquire uma licença, se houver uma disponível e retorna imediatamente, reduzindo o número de permissões disponíveis em uma.
Se nenhuma permissão estiver disponível, o thread atual ficará desabilitado para fins de agendamento de thread e ficará inativo até que algum outro thread invoque o #release método para esse semáforo e o thread atual seja atribuído a uma permissão.
Se o thread atual for Thread#interrupt interrompido enquanto aguarda uma permissão, ele continuará aguardando, mas o momento em que o thread recebe uma permissão pode mudar em comparação com o momento em que ele teria recebido a permissão se não tivesse ocorrido nenhuma interrupção. Quando o thread retornar desse método, seu status de interrupção será definido.
Java documentação para java.util.concurrent.Semaphore.acquireUninterruptibly().
Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Project Open Source do Open Source e usadas de acordo com os termos descritos na Creative Commons 2.5.
Aplica-se a
AcquireUninterruptibly(Int32)
Adquire o número determinado de licenças desse semáforo, bloqueando até que todas estejam disponíveis.
[Android.Runtime.Register("acquireUninterruptibly", "(I)V", "GetAcquireUninterruptibly_IHandler")]
public virtual void AcquireUninterruptibly(int permits);
[<Android.Runtime.Register("acquireUninterruptibly", "(I)V", "GetAcquireUninterruptibly_IHandler")>]
abstract member AcquireUninterruptibly : int -> unit
override this.AcquireUninterruptibly : int -> unit
Parâmetros
- permits
- Int32
o número de permissões para adquirir
- Atributos
Exceções
se permits for negativo
Comentários
Adquire o número determinado de licenças desse semáforo, bloqueando até que todas estejam disponíveis.
Adquire o número determinado de licenças, se elas estiverem disponíveis, e retorna imediatamente, reduzindo o número de permissões disponíveis pelo valor determinado. Esse método tem o mesmo efeito que o loop for (int i = 0; i < permits; ++i) acquireUninterruptibly(); , exceto que ele adquire atomicamente as permissões de uma só vez:
Se as permissões insuficientes estiverem disponíveis, o thread atual ficará desabilitado para fins de agendamento de thread e ficará inativo até que algum outro thread invoque um dos #release() release métodos para esse semáforo e o thread atual esteja próximo a ter permissões atribuídas e o número de permissões disponíveis atenda a essa solicitação.
Se o thread atual for Thread#interrupt interrompido enquanto aguarda as permissões, ele continuará aguardando e sua posição na fila não será afetada. Quando o thread retornar desse método, seu status de interrupção será definido.
Java documentação para java.util.concurrent.Semaphore.acquireUninterruptibly(int).
Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Project Open Source do Open Source e usadas de acordo com os termos descritos na Creative Commons 2.5.