Compartilhar via


ILock.LockInterruptibly Método

Definição

Adquire o bloqueio, a menos que o thread atual seja Thread#interrupt interrompido.

[Android.Runtime.Register("lockInterruptibly", "()V", "GetLockInterruptiblyHandler:Java.Util.Concurrent.Locks.ILockInvoker, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null")]
public void LockInterruptibly ();
[<Android.Runtime.Register("lockInterruptibly", "()V", "GetLockInterruptiblyHandler:Java.Util.Concurrent.Locks.ILockInvoker, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null")>]
abstract member LockInterruptibly : unit -> unit
Atributos

Exceções

se o thread atual for interrompido durante a aquisição do bloqueio (e a interrupção da aquisição do bloqueio for suportada)

Comentários

Adquire o bloqueio, a menos que o thread atual seja Thread#interrupt interrompido.

Adquire o cadeado se ele estiver disponível e retorna imediatamente.

Se o bloqueio não estiver disponível, o thread atual será desabilitado para fins de agendamento de thread e ficará inativo até que uma das duas coisas aconteça:

<><ul li>O bloqueio é adquirido pelo thread atual; ou <li>Algum outro thread Thread#interrupt interrompe o thread atual, e a interrupção da aquisição de bloqueio é suportada. </ul>

Se o thread atual: <ul><li>tiver seu status interrompido definido na entrada deste método, ou <li>for Thread#interrupt interrompido durante a aquisição do bloqueio, e a interrupção da aquisição do bloqueio for suportada, </ul> então InterruptedException será lançado e o status interrompido do thread atual será limpo.

<b>Considerações< sobre a implementação/b>

A capacidade de interromper uma aquisição de bloqueio em algumas implementações pode não ser possível e, se possível, pode ser uma operação cara. O programador deve estar ciente de que este pode ser o caso. Uma implementação deve documentar quando esse é o caso.

Uma implementação pode favorecer a resposta a uma interrupção em vez do retorno normal do método.

Uma Lock implementação pode ser capaz de detectar o uso errôneo do bloqueio, como uma invocação que causaria deadlock, e pode lançar uma exceção (não verificada) em tais circunstâncias. As circunstâncias e o tipo de exceção devem ser documentados por essa Lock implementação.

Documentação Java para java.util.concurrent.locks.Lock.lockInterruptibly().

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