Semaphore.Acquire 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 |
|---|---|
| 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.