ILock.LockInterruptibly Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Erwirbt die Sperre, es sei denn, der aktuelle Thread ist Thread#interrupt unterbrochen.
[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
- Attribute
Ausnahmen
wenn der aktuelle Thread beim Abrufen der Sperre unterbrochen wird (und Unterbrechung der Sperrerfassung unterstützt wird)
Hinweise
Erwirbt die Sperre, es sei denn, der aktuelle Thread ist Thread#interrupt unterbrochen.
Ruft die Sperre ab, wenn sie verfügbar ist und sofort zurückgegeben wird.
Wenn die Sperre nicht verfügbar ist, wird der aktuelle Thread für Threadplanungszwecke deaktiviert und liegt ruhend, bis eines von zwei Dingen geschieht:
<ul><li>Die Sperre wird vom aktuellen Thread abgerufen; oder <li>Ein anderer Thread-Thread#-Interrupt unterbricht den aktuellen Thread, und die Unterbrechung der Sperrerfassung wird unterstützt. </ul>
Wenn der aktuelle Thread: <ul><li>seinen unterbrochenen Status für den Eintrag in dieser Methode festgelegt hat; oder <li>ist Thread#interrupt unterbrochen, während die Sperre abgerufen wird, und Unterbrechung der Sperrerfassung wird unterstützt, /ul> wird ausgelöstInterruptedException
, <und der unterbrochene Status des aktuellen Threads wird gelöscht.
<b>Überlegungen zur Implementierung</b>
Die Möglichkeit, eine Sperrerfassung in einigen Implementierungen zu unterbrechen, ist möglicherweise nicht möglich, und wenn möglich kann es sich um einen kostspieligen Vorgang handelt. Der Programmierer sollte beachten, dass dies möglicherweise der Fall ist. Eine Implementierung sollte dokumentieren, wenn dies der Fall ist.
Eine Implementierung kann das Reagieren auf einen Interrupt über die normale Methodenrückgabe bevorzugen.
Eine Lock
Implementierung kann möglicherweise eine fehlerhafte Verwendung der Sperre erkennen, z. B. einen Aufruf, der einen Deadlock verursachen würde, und kann eine (deaktivierte) Ausnahme in solchen Fällen auslösen. Die Umstände und der Ausnahmetyp müssen von dieser Lock
Implementierung dokumentiert werden.
Java-Dokumentation für java.util.concurrent.locks.Lock.lockInterruptibly()
.
Teile dieser Seite sind Änderungen auf der Grundlage von Arbeiten, die vom Android Open Source-Projekt erstellt und freigegeben werden und gemäß den in der Creative Commons 2.5 Attribution License beschriebenen Begriffen verwendet werden.