Semaphore.Acquire Método

Definición

Sobrecargas

Nombre Description
Acquire()

Adquiere un permiso de este semáforo, bloqueando hasta que uno esté disponible o el subproceso es Thread#interrupt interrumpida.

Acquire(Int32)

Adquiere el número determinado de permisos de este semáforo, el bloqueo hasta que todos están disponibles o el subproceso es Thread#interrupt interrumpida.

Acquire()

Adquiere un permiso de este semáforo, bloqueando hasta que uno esté disponible o el subproceso es Thread#interrupt interrumpida.

[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
Atributos

Excepciones

si se interrumpe el subproceso actual

Comentarios

Adquiere un permiso de este semáforo, bloqueando hasta que uno esté disponible o el subproceso es Thread#interrupt interrumpida.

Adquiere un permiso, si uno está disponible y devuelve inmediatamente, lo que reduce el número de permisos disponibles por uno.

Si no hay permiso disponible, el subproceso actual se deshabilita con fines de programación de subprocesos y permanece inactivo hasta que se produzca una de las dos cosas: <ul><li>Otros subprocesos invocan el #release método para este semáforo y el subproceso actual se asigna un permiso; o <li>Otros subprocesos Thread#interrupt interrumpen el subproceso actual. </ul>

Si el subproceso actual: <ul<>li>tiene su estado interrumpido establecido en la entrada a este método; o <li>es Thread#interrupt interrumpida mientras se espera un permiso, </ul> se InterruptedException produce y se borra el estado interrumpido del subproceso actual.

Documentación de Java para java.util.concurrent.Semaphore.acquire().

Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el proyecto de código abierto de Android y se usan según los términos descritos en la licencia de atribución de Creative Commons 2.5.

Se aplica a

Acquire(Int32)

Adquiere el número determinado de permisos de este semáforo, el bloqueo hasta que todos están disponibles o el subproceso es Thread#interrupt interrumpida.

[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

Parámetros

permits
Int32

el número de permisos para adquirir

Atributos

Excepciones

si se interrumpe el subproceso actual

si permits es negativo

Comentarios

Adquiere el número determinado de permisos de este semáforo, el bloqueo hasta que todos están disponibles o el subproceso es Thread#interrupt interrumpida.

Adquiere el número determinado de permisos, si están disponibles, y devuelve inmediatamente, lo que reduce el número de permisos disponibles por la cantidad especificada. Este método tiene el mismo efecto que el bucle for (int i = 0; i < permits; ++i) acquire(); , salvo que adquiere atómicamente los permisos a la vez:

Si no hay permisos suficientes disponibles, el subproceso actual se deshabilita con fines de programación de subprocesos y permanece inactivo hasta que se produce una de las dos cosas: <ul<>li>Otros subprocesos invocan uno de los #release() release métodos para este semáforo y el subproceso actual está junto a permisos asignados y el número de permisos disponibles satisface esta solicitud; o <li>Otros subprocesos Thread#interrupt interrumpen el subproceso actual. </ul>

Si el subproceso actual: <ul<>li>tiene su estado interrumpido establecido en la entrada a este método; o <li>es Thread#interrupt interrumpida mientras se espera un permiso, </ul> se InterruptedException produce y se borra el estado interrumpido del subproceso actual. En su lugar, los permisos que se asignaron a este subproceso se asignan a otros subprocesos que intentan adquirir permisos, como si se hubieran puesto permisos disponibles mediante una llamada a #release().

Documentación de Java para java.util.concurrent.Semaphore.acquire(int).

Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el proyecto de código abierto de Android y se usan según los términos descritos en la licencia de atribución de Creative Commons 2.5.

Se aplica a