Semaphore.Acquire 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.
Überlädt
| Name | Beschreibung |
|---|---|
| Acquire() |
Erwirbt eine Genehmigung von diesem Semaphor, blockiert, bis eine verfügbar ist, oder der Thread ist Thread#interrupt unterbrochen. |
| Acquire(Int32) |
Erwirbt die angegebene Anzahl von Genehmigungen von diesem Semaphor, sperrt, bis alle verfügbar sind, oder der Thread ist Thread#interrupt unterbrochen. |
Acquire()
Erwirbt eine Genehmigung von diesem Semaphor, blockiert, bis eine verfügbar ist, oder der Thread ist Thread#interrupt unterbrochen.
[Android.Runtime.Register("acquire", "()V", "GetAcquireHandler")]
public virtual void Acquire();
[<Android.Runtime.Register("acquire", "()V", "GetAcquireHandler")>]
abstract member Acquire : unit -> unit
override this.Acquire : unit -> unit
- Attribute
Ausnahmen
wenn der aktuelle Thread unterbrochen wird
Hinweise
Erwirbt eine Genehmigung von diesem Semaphor, blockiert, bis eine verfügbar ist, oder der Thread ist Thread#interrupt unterbrochen.
Erwirbt eine Genehmigung, wenn eine verfügbar ist und sofort zurückgegeben wird, wodurch die Anzahl der verfügbaren Genehmigungen um eins reduziert wird.
Wenn keine Genehmigung verfügbar ist, wird der aktuelle Thread für Threadplanungszwecke deaktiviert und liegt ruhend, bis eines von zwei Dingen geschieht: <ul><li>Ein anderer Thread ruft die #release Methode für dieses Semaphor auf, und der aktuelle Thread wird neben einer Genehmigung zugewiesen; oder <li>Ein anderer Thread thread#interrupt unterbricht den aktuellen Thread.
</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 sie auf eine Genehmigung warten, <wird /ul> dann InterruptedException ausgelöst, und der unterbrochene Status des aktuellen Threads wird gelöscht.
Java Dokumentation für java.util.concurrent.Semaphore.acquire().
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:
Acquire(Int32)
Erwirbt die angegebene Anzahl von Genehmigungen von diesem Semaphor, sperrt, bis alle verfügbar sind, oder der Thread ist Thread#interrupt unterbrochen.
[Android.Runtime.Register("acquire", "(I)V", "GetAcquire_IHandler")]
public virtual void Acquire(int permits);
[<Android.Runtime.Register("acquire", "(I)V", "GetAcquire_IHandler")>]
abstract member Acquire : int -> unit
override this.Acquire : int -> unit
Parameter
- permits
- Int32
Die Anzahl der Genehmigungen für den Erwerb
- Attribute
Ausnahmen
wenn der aktuelle Thread unterbrochen wird
wenn permits negativ
Hinweise
Erwirbt die angegebene Anzahl von Genehmigungen von diesem Semaphor, sperrt, bis alle verfügbar sind, oder der Thread ist Thread#interrupt unterbrochen.
Erwirbt die angegebene Anzahl von Genehmigungen, sofern sie verfügbar sind, und gibt sofort zurück, wodurch die Anzahl der verfügbaren Genehmigungen um den angegebenen Betrag reduziert wird. Diese Methode hat die gleiche Wirkung wie die Schleife for (int i = 0; i < permits; ++i) acquire(); , mit der Ausnahme, dass sie die Genehmigungen auf einmal atomar erwirbt:
Wenn unzureichende Genehmigungen verfügbar sind, wird der aktuelle Thread zu Threadplanungszwecken deaktiviert und liegt ruhend, bis eines von zwei Dingen auftritt: <ul><li>Ein anderer Thread ruft eine der #release() release Methoden für dieses Semaphor auf, und der aktuelle Thread wird neben der Zuweisung von Genehmigungen zugewiesen, und die Anzahl der verfügbaren Genehmigungen erfüllt diese Anforderung; oder <li>einige andere Thread#interrupt unterbricht den aktuellen Thread.
</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 sie auf eine Genehmigung warten, <wird /ul> dann InterruptedException ausgelöst, und der unterbrochene Status des aktuellen Threads wird gelöscht. Alle Genehmigungen, die diesem Thread zugewiesen werden sollen, werden stattdessen anderen Threads zugewiesen, die versuchen, Genehmigungen zu erwerben, als ob die Genehmigungen durch einen Aufruf #release()zur Verfügung gestellt wurden.
Java Dokumentation für java.util.concurrent.Semaphore.acquire(int).
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.