Freigeben über


Semaphore.Acquire Methode

Definition

Überlädt

Acquire()

Ruft eine Genehmigung von diesem Semaphor ab, blockiert, bis eine verfügbar ist oder der Thread Thread#interrupt unterbrochen ist.

Acquire(Int32)

Ruft die angegebene Anzahl von Genehmigungen von diesem Semaphor ab und blockiert, bis alle verfügbar sind oder der Thread Thread#Interrupt unterbrochen ist.

Acquire()

Ruft eine Genehmigung von diesem Semaphor ab, blockiert, bis eine verfügbar ist oder der Thread Thread#interrupt unterbrochen ist.

[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

Ruft eine Genehmigung von diesem Semaphor ab, blockiert, bis eine verfügbar ist oder der Thread Thread#interrupt unterbrochen ist.

Erwirbt eine Genehmigung, wenn eine verfügbar ist und sofort zurückkommt, wodurch die Anzahl der verfügbaren Genehmigungen um eine reduziert wird.

Wenn keine Genehmigung verfügbar ist, wird der aktuelle Thread zu Threadplanungszwecken deaktiviert und bleibt ruhen, bis eines von zwei Dingen geschieht: <ul><li>Ein anderer Thread ruft die #release Methode für dieses Semaphor auf, und dem aktuellen Thread wird als nächstes eine Genehmigung zugewiesen; oder <li>Ein anderer Thread Thread#interrupt unterbricht den aktuellen Thread. </ul>

Wenn für den aktuellen Thread: ul>li der unterbrochene status für den Eintrag zu dieser Methode festgelegt ist oder <li>thread#interrupt unterbrochen ist, während er auf eine Genehmigung wartet, <wird /ul> ausgelöst, und die unterbrochene status des aktuellen InterruptedException Threads wird gelöscht.><<

Java-Dokumentation für java.util.concurrent.Semaphore.acquire().

Teile dieser Seite sind Änderungen, die auf Arbeiten basieren, die vom Android Open Source Project erstellt und freigegeben wurden und gemäß den In der Attribution License beschriebenen Begriffen verwendet werden.

Gilt für:

Acquire(Int32)

Ruft die angegebene Anzahl von Genehmigungen von diesem Semaphor ab und blockiert, bis alle verfügbar sind oder der Thread Thread#Interrupt unterbrochen ist.

[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 zum Erwerb

Attribute

Ausnahmen

wenn der aktuelle Thread unterbrochen wird

, wenn permits negativ ist

Hinweise

Ruft die angegebene Anzahl von Genehmigungen von diesem Semaphor ab und blockiert, bis alle verfügbar sind oder der Thread Thread#Interrupt unterbrochen ist.

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 atomar die Genehmigungen auf einmal erhält:

Wenn unzureichende Genehmigungen verfügbar sind, wird der aktuelle Thread für Threadplanungszwecke deaktiviert und bleibt ruhen, bis eine von zwei Dingen geschieht: <ul<>li>Ein anderer Thread ruft eine der #release() release Methoden für dieses Semaphor auf, und der aktuelle Thread wird als nächstes zu Genehmigungen zugewiesen und die Anzahl der verfügbaren Genehmigungen erfüllt diese Anforderung; oder <li>Ein anderer Thread Thread#interrupt unterbricht den aktuellen Thread. </ul>

Wenn für den aktuellen Thread: ul>li der unterbrochene status für den Eintrag zu dieser Methode festgelegt ist oder <li>thread#interrupt unterbrochen ist, während er auf eine Genehmigung wartet, <wird /ul> ausgelöst, und die unterbrochene status des aktuellen InterruptedException Threads wird gelöscht.><< Alle Genehmigungen, die diesem Thread zugewiesen werden sollten, werden stattdessen anderen Threads zugewiesen, die versuchen, Genehmigungen zu erwerben, als ob durch einen Aufruf #release()von genehmigungen verfügbar gemacht worden wäre.

Java-Dokumentation für java.util.concurrent.Semaphore.acquire(int).

Teile dieser Seite sind Änderungen, die auf Arbeiten basieren, die vom Android Open Source Project erstellt und freigegeben wurden und gemäß den In der Attribution License beschriebenen Begriffen verwendet werden.

Gilt für: