Semaphore.AcquireUninterruptibly Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Sobrecargas
| Nombre | Description |
|---|---|
| AcquireUninterruptibly() |
Adquiere un permiso de este semáforo, bloqueando hasta que uno esté disponible. |
| AcquireUninterruptibly(Int32) |
Adquiere el número determinado de permisos de este semáforo, bloqueando hasta que todos estén disponibles. |
AcquireUninterruptibly()
Adquiere un permiso de este semáforo, bloqueando hasta que uno esté disponible.
[Android.Runtime.Register("acquireUninterruptibly", "()V", "GetAcquireUninterruptiblyHandler")]
public virtual void AcquireUninterruptibly();
[<Android.Runtime.Register("acquireUninterruptibly", "()V", "GetAcquireUninterruptiblyHandler")>]
abstract member AcquireUninterruptibly : unit -> unit
override this.AcquireUninterruptibly : unit -> unit
- Atributos
Comentarios
Adquiere un permiso de este semáforo, bloqueando hasta que uno esté disponible.
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 algún otro subproceso invoca el #release método para este semáforo y el subproceso actual está junto a asignar un permiso.
Si el subproceso actual es Thread#interrupt interrumpida mientras espera un permiso, seguirá esperando, pero el momento en el que se asigna un permiso puede cambiar en comparación con el tiempo que habría recibido el permiso si no se hubiera producido ninguna interrupción. Cuando el subproceso devuelve de este método, se establecerá su estado de interrupción.
Java documentación para java.util.concurrent.Semaphore.acquireUninterruptibly().
Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el Android y se usan según los términos descritos en creative Creative Commons 2.5 Attribution License.
Se aplica a
AcquireUninterruptibly(Int32)
Adquiere el número determinado de permisos de este semáforo, bloqueando hasta que todos estén disponibles.
[Android.Runtime.Register("acquireUninterruptibly", "(I)V", "GetAcquireUninterruptibly_IHandler")]
public virtual void AcquireUninterruptibly(int permits);
[<Android.Runtime.Register("acquireUninterruptibly", "(I)V", "GetAcquireUninterruptibly_IHandler")>]
abstract member AcquireUninterruptibly : int -> unit
override this.AcquireUninterruptibly : int -> unit
Parámetros
- permits
- Int32
el número de permisos para adquirir
- Atributos
Excepciones
si permits es negativo
Comentarios
Adquiere el número determinado de permisos de este semáforo, bloqueando hasta que todos estén disponibles.
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) acquireUninterruptibly(); , 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 algún otro subproceso invoca 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.
Si el subproceso actual es Thread#interrupt interrumpido mientras espera permisos, seguirá esperando y su posición en la cola no se verá afectada. Cuando el subproceso devuelve de este método, se establecerá su estado de interrupción.
Java documentación para java.util.concurrent.Semaphore.acquireUninterruptibly(int).
Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el Android y se usan según los términos descritos en creative Creative Commons 2.5 Attribution License.