Sprache

ReentrantLock.LockInterruptibly Methode

Definition

Erwirbt die Sperre, es sei denn, der aktuelle Thread ist Thread#interrupt unterbrochen.

[Android.Runtime.Register("lockInterruptibly", "()V", "GetLockInterruptiblyHandler")]
public virtual void LockInterruptibly();
[<Android.Runtime.Register("lockInterruptibly", "()V", "GetLockInterruptiblyHandler")>]
abstract member LockInterruptibly : unit -> unit
override this.LockInterruptibly : unit -> unit

Implementiert

Attribute

Ausnahmen

wenn der aktuelle Thread unterbrochen wird

Hinweise

Erwirbt die Sperre, es sei denn, der aktuelle Thread ist Thread#interrupt unterbrochen.

Ruft die Sperre ab, wenn sie nicht von einem anderen Thread gehalten wird und sofort zurückgegeben wird, und legt die Anzahl der Sperren auf einen fest.

Wenn der aktuelle Thread diese Sperre bereits enthält, wird die Haltebereicheanzahl um eins erhöht, und die Methode wird sofort zurückgegeben.

Wenn die Sperre von einem anderen Thread gehalten wird, wird der aktuelle Thread für Threadplanungszwecke deaktiviert und liegt ruhend, bis eines von zwei Dingen passiert:

<Ul>

<li>Die Sperre wird vom aktuellen Thread erworben oder

<li>Ein anderer Threadthread#interrupt unterbricht den aktuellen Thread.

</ul>

Wenn die Sperre vom aktuellen Thread abgerufen wird, wird die Anzahl der Sperren auf eins festgelegt.

Wenn der aktuelle Thread:

<Ul>

<li>hat seinen unterbrochenen Status für den Eintrag in diese Methode festgelegt; oder

<li>ist Thread#interrupt unterbrochen beim Abrufen der Sperre,

</ul>

wird dann InterruptedException ausgelöst, und der unterbrochene Status des aktuellen Threads wird gelöscht.

Bei dieser Implementierung, da diese Methode ein expliziter Unterbrechungspunkt ist, wird bevorzugt, auf den Interrupt gegenüber normaler oder erneuter Übernahme der Sperre zu reagieren.

Java Dokumentation für java.util.concurrent.locks.ReentrantLock.lockInterruptibly().

Teile dieser Seite sind Änderungen auf der Grundlage von Arbeiten, die von der Android Open Source Project erstellt und gemeinsam verwendet und gemäß den in der 2.5 Attribution License beschriebenen Begriffen verwendet werden.

Gilt für: