Semaphore.TryAcquire Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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.
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().
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.