Partager via


Semaphore.TryAcquire Méthode

Définition

Surcharges

TryAcquire()

Acquiert un permis à partir de ce sémaphore, seulement si un est disponible au moment de l’appel.

TryAcquire(Int32)

Acquiert le nombre donné de permis de ce sémaphore, uniquement si tous sont disponibles au moment de l’appel.

TryAcquire(Int64, TimeUnit)

Acquiert un permis à partir de ce sémaphore, si l’on devient disponible dans le délai d’attente donné et que le thread actuel n’a pas été interrompu thread#interruption.

TryAcquire(Int32, Int64, TimeUnit)

Acquiert le nombre donné de permis à partir de ce sémaphore, si tous deviennent disponibles dans le délai d’attente donné et que le thread actuel n’a pas été interrompu thread#interruption.

TryAcquire()

Acquiert un permis à partir de ce sémaphore, seulement si un est disponible au moment de l’appel.

[Android.Runtime.Register("tryAcquire", "()Z", "GetTryAcquireHandler")]
public virtual bool TryAcquire ();
[<Android.Runtime.Register("tryAcquire", "()Z", "GetTryAcquireHandler")>]
abstract member TryAcquire : unit -> bool
override this.TryAcquire : unit -> bool

Retours

true si un permis a été acquis et false sinon

Attributs

Remarques

Acquiert un permis à partir de ce sémaphore, seulement si un est disponible au moment de l’appel.

Acquiert un permis, si un permis est disponible et retourne immédiatement, avec la valeur true, réduisant le nombre de permis disponibles par un.

Si aucun permis n’est disponible, cette méthode retourne immédiatement avec la valeur false.

Même lorsque ce sémaphore a été défini pour utiliser une stratégie de classement équitable, un appel à tryAcquire()<em>will</em> acquiert immédiatement un permis si l’un est disponible, que d’autres threads soient en attente ou non. Ce " barging" le comportement peut être utile dans certaines circonstances, même s’il interrompt l’équité. Si vous souhaitez respecter le paramètre d’équité, utilisez #tryAcquire(long, TimeUnit) tryAcquire(0, TimeUnit.SECONDS) ce qui est presque équivalent (il détecte également l’interruption).

Documentation Java pour java.util.concurrent.Semaphore.tryAcquire().

Les parties de cette page sont des modifications basées sur le travail créé et partagé par le projet Android Open Source et utilisés en fonction des termes décrits dans la licence d’attribution Creative Commons 2.5.

S’applique à

TryAcquire(Int32)

Acquiert le nombre donné de permis de ce sémaphore, uniquement si tous sont disponibles au moment de l’appel.

[Android.Runtime.Register("tryAcquire", "(I)Z", "GetTryAcquire_IHandler")]
public virtual bool TryAcquire (int permits);
[<Android.Runtime.Register("tryAcquire", "(I)Z", "GetTryAcquire_IHandler")>]
abstract member TryAcquire : int -> bool
override this.TryAcquire : int -> bool

Paramètres

permits
Int32

le nombre de permis d’acquérir

Retours

true si les permis ont été acquis et false sinon

Attributs

Exceptions

s’il permits est négatif

Remarques

Acquiert le nombre donné de permis de ce sémaphore, uniquement si tous sont disponibles au moment de l’appel.

Acquiert le nombre donné de permis, s’ils sont disponibles et retourne immédiatement, avec la valeur true, réduisant le nombre de permis disponibles par le montant donné.

Si des permis insuffisants sont disponibles, cette méthode retourne immédiatement avec la valeur false et le nombre de permis disponibles est inchangé.

Même lorsque ce sémaphore a été défini pour utiliser une stratégie de classement équitable, un appel à tryAcquire<em>will</em> acquiert immédiatement un permis si l’un est disponible, que d’autres threads soient en attente ou non. Ce " barging" le comportement peut être utile dans certaines circonstances, même s’il interrompt l’équité. Si vous souhaitez respecter le paramètre d’équité, utilisez #tryAcquire(int, long, TimeUnit) tryAcquire(permits, 0, TimeUnit.SECONDS) ce qui est presque équivalent (il détecte également l’interruption).

Documentation Java pour java.util.concurrent.Semaphore.tryAcquire(int).

Les parties de cette page sont des modifications basées sur le travail créé et partagé par le projet Android Open Source et utilisés en fonction des termes décrits dans la licence d’attribution Creative Commons 2.5.

S’applique à

TryAcquire(Int64, TimeUnit)

Acquiert un permis à partir de ce sémaphore, si l’on devient disponible dans le délai d’attente donné et que le thread actuel n’a pas été interrompu thread#interruption.

[Android.Runtime.Register("tryAcquire", "(JLjava/util/concurrent/TimeUnit;)Z", "GetTryAcquire_JLjava_util_concurrent_TimeUnit_Handler")]
public virtual bool TryAcquire (long timeout, Java.Util.Concurrent.TimeUnit? unit);
[<Android.Runtime.Register("tryAcquire", "(JLjava/util/concurrent/TimeUnit;)Z", "GetTryAcquire_JLjava_util_concurrent_TimeUnit_Handler")>]
abstract member TryAcquire : int64 * Java.Util.Concurrent.TimeUnit -> bool
override this.TryAcquire : int64 * Java.Util.Concurrent.TimeUnit -> bool

Paramètres

timeout
Int64

durée maximale d’attente d’un permis

unit
TimeUnit

unité de temps de l’argument timeout

Retours

true si un permis a été acquis et false si le temps d’attente s’est écoulé avant l’acquisition d’un permis

Attributs

Exceptions

si le thread actuel est interrompu

Remarques

Acquiert un permis à partir de ce sémaphore, si l’on devient disponible dans le délai d’attente donné et que le thread actuel n’a pas été interrompu thread#interruption.

Acquiert un permis, si un permis est disponible et retourne immédiatement, avec la valeur true, réduisant le nombre de permis disponibles par un.

Si aucun permis n’est disponible, le thread actuel devient désactivé à des fins de planification de threads et se trouve dormant jusqu’à ce que l’une des trois choses se produise : <ul<>li>Certains autres threads appellent la #release méthode pour ce sémaphore et le thread actuel est à côté d’être affecté à un permis ; ou <li>Un autre thread thread#interruption interrompt le thread actuel ; ou <li>Le temps d’attente spécifié s’écoule. </ul>

Si un permis est acquis, la valeur true est retournée.

Si le thread actuel : <ul><li>a son état interrompu défini sur l’entrée de cette méthode ; ou <li>est l’interruption thread#interruption en attendant d’acquérir un permis, </ul> est InterruptedException levée et l’état interrompu du thread actuel est effacé.

Si le temps d’attente spécifié s’écoule, la valeur false est retournée. Si le temps est inférieur ou égal à zéro, la méthode n’attend pas du tout.

Documentation Java pour java.util.concurrent.Semaphore.tryAcquire(long, java.util.concurrent.TimeUnit).

Les parties de cette page sont des modifications basées sur le travail créé et partagé par le projet Android Open Source et utilisés en fonction des termes décrits dans la licence d’attribution Creative Commons 2.5.

S’applique à

TryAcquire(Int32, Int64, TimeUnit)

Acquiert le nombre donné de permis à partir de ce sémaphore, si tous deviennent disponibles dans le délai d’attente donné et que le thread actuel n’a pas été interrompu thread#interruption.

[Android.Runtime.Register("tryAcquire", "(IJLjava/util/concurrent/TimeUnit;)Z", "GetTryAcquire_IJLjava_util_concurrent_TimeUnit_Handler")]
public virtual bool TryAcquire (int permits, long timeout, Java.Util.Concurrent.TimeUnit? unit);
[<Android.Runtime.Register("tryAcquire", "(IJLjava/util/concurrent/TimeUnit;)Z", "GetTryAcquire_IJLjava_util_concurrent_TimeUnit_Handler")>]
abstract member TryAcquire : int * int64 * Java.Util.Concurrent.TimeUnit -> bool
override this.TryAcquire : int * int64 * Java.Util.Concurrent.TimeUnit -> bool

Paramètres

permits
Int32

le nombre de permis d’acquérir

timeout
Int64

durée maximale d’attente des permis

unit
TimeUnit

unité de temps de l’argument timeout

Retours

true si tous les permis ont été acquis et false si le temps d’attente s’est écoulé avant l’acquisition de tous les permis

Attributs

Exceptions

si le thread actuel est interrompu

s’il permits est négatif

Remarques

Acquiert le nombre donné de permis à partir de ce sémaphore, si tous deviennent disponibles dans le délai d’attente donné et que le thread actuel n’a pas été interrompu thread#interruption.

Acquiert le nombre donné de permis, s’ils sont disponibles et retournent immédiatement, avec la valeur true, réduisant le nombre de permis disponibles par le montant donné.

Si des autorisations insuffisantes sont disponibles, le thread actuel devient désactivé à des fins de planification de thread et se trouve dormant jusqu’à ce que l’une des trois choses se produisent : ul>li Quelque autre thread appelle l’une #release() release des méthodes pour ce sémaphore et le thread actuel est à côté d’être affecté permis et le nombre d’autorisations disponibles satisfait à cette demande ; ou <li>Un autre thread Thread#interruption interrompt le thread actuel ; ou <li>><<Le temps d’attente spécifié s’écoule. </ul>

Si les permis sont acquis, la valeur true est retournée.

Si le thread actuel : <ul><li>a son état interrompu défini sur l’entrée de cette méthode ; ou <li>est l’interruption thread#interruption en attendant d’acquérir les permis, </ul> est InterruptedException levée et l’état interrompu du thread actuel est effacé. Les autorisations qui devaient être affectées à ce thread sont affectées à d’autres threads qui tentent d’acquérir des permis, comme si les permis avaient été mis à disposition par un appel à #release().

Si le temps d’attente spécifié s’écoule, la valeur false est retournée. Si le temps est inférieur ou égal à zéro, la méthode n’attend pas du tout. Les autorisations qui devaient être affectées à ce thread sont affectées à d’autres threads qui tentent d’acquérir des permis, comme si les permis avaient été mis à disposition par un appel à #release().

Documentation Java pour java.util.concurrent.Semaphore.tryAcquire(int, long, java.util.concurrent.TimeUnit).

Les parties de cette page sont des modifications basées sur le travail créé et partagé par le projet Android Open Source et utilisés en fonction des termes décrits dans la licence d’attribution Creative Commons 2.5.

S’applique à