Langage

Object.Wait Méthode

Définition

Surcharges

Nom Description
Wait()

Provoque l’attente du thread actuel jusqu’à ce qu’il soit réveillé, généralement en étant <averti par em ou><em>interrompu</em>.<>

Wait(Int64)

Provoque l’attente du thread actuel jusqu’à ce qu’il soit réveillé, généralement en étant <averti> par< em>ou <em>interrompu/em<,> ou jusqu’à ce qu’une certaine quantité de temps réel s’est écoulée.

Wait(Int64, Int32)

Provoque l’attente du thread actuel jusqu’à ce qu’il soit réveillé, généralement en étant <averti> par< em>ou <em>interrompu/em<,> ou jusqu’à ce qu’une certaine quantité de temps réel s’est écoulée.

Wait()

Provoque l’attente du thread actuel jusqu’à ce qu’il soit réveillé, généralement en étant <averti par em ou><em>interrompu</em>.<>

[Android.Runtime.Register("wait", "()V", "")]
public void Wait();
[<Android.Runtime.Register("wait", "()V", "")>]
member this.Wait : unit -> unit
Attributs

Exceptions

si le thread appelant cette méthode n’est pas le propriétaire du moniteur de cet objet.

si le thread actuel a été interrompu. L’état interrompu du thread actuel est effacé avant la levée de l’exception.

Remarques

Provoque l’attente du thread actuel jusqu’à ce qu’il soit réveillé, généralement en étant <averti par em ou><em>interrompu</em>.<>

À tous égards, cette méthode se comporte comme si wait(0L, 0) elle avait été appelée. Pour plus d’informations, consultez la spécification de la #wait(long, int) méthode.

Java documentation pour java.lang.Object.wait().

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

Voir aussi

S’applique à

Wait(Int64)

Provoque l’attente du thread actuel jusqu’à ce qu’il soit réveillé, généralement en étant <averti> par< em>ou <em>interrompu/em<,> ou jusqu’à ce qu’une certaine quantité de temps réel s’est écoulée.

[Android.Runtime.Register("wait", "(J)V", "")]
public void Wait(long timeoutMillis);
[<Android.Runtime.Register("wait", "(J)V", "")>]
member this.Wait : int64 -> unit

Paramètres

timeoutMillis
Int64

durée maximale d’attente, en millisecondes

Attributs

Exceptions

si le thread appelant cette méthode n’est pas le propriétaire du moniteur de cet objet.

si le thread actuel a été interrompu. L’état interrompu du thread actuel est effacé avant la levée de l’exception.

Remarques

Provoque l’attente du thread actuel jusqu’à ce qu’il soit réveillé, généralement en étant <averti> par< em>ou <em>interrompu/em<,> ou jusqu’à ce qu’une certaine quantité de temps réel s’est écoulée.

À tous égards, cette méthode se comporte comme si wait(timeoutMillis, 0) elle avait été appelée. Pour plus d’informations, consultez la spécification de la #wait(long, int) méthode.

Java documentation pour java.lang.Object.wait(long).

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

Voir aussi

S’applique à

Wait(Int64, Int32)

Provoque l’attente du thread actuel jusqu’à ce qu’il soit réveillé, généralement en étant <averti> par< em>ou <em>interrompu/em<,> ou jusqu’à ce qu’une certaine quantité de temps réel s’est écoulée.

[Android.Runtime.Register("wait", "(JI)V", "")]
public void Wait(long timeoutMillis, int nanos);
[<Android.Runtime.Register("wait", "(JI)V", "")>]
member this.Wait : int64 * int -> unit

Paramètres

timeoutMillis
Int64

durée maximale d’attente, en millisecondes

nanos
Int32

temps supplémentaire, en nanosecondes, dans la plage 0-9999999 inclus

Attributs

Exceptions

si millis , nanos ou nanos > 999999.

si le thread appelant cette méthode n’est pas le propriétaire du moniteur de cet objet.

si le thread actuel a été interrompu. L’état interrompu du thread actuel est effacé avant la levée de l’exception.

Remarques

Provoque l’attente du thread actuel jusqu’à ce qu’il soit réveillé, généralement en étant <averti> par< em>ou <em>interrompu/em<,> ou jusqu’à ce qu’une certaine quantité de temps réel s’est écoulée.

Le thread actuel doit posséder le verrou de moniteur de cet objet. Consultez la #notify notify méthode pour obtenir une description des façons dont un thread peut devenir le propriétaire d’un verrou de moniteur.

Cette méthode amène le thread actuel (appelé ici <var T>/var<>) à se placer dans le jeu d’attente de cet objet, puis à abandonner toutes les revendications de synchronisation sur cet objet. Notez que seuls les verrous de cet objet sont annulés ; tous les autres objets sur lesquels le thread actuel peut être synchronisé restent verrouillés pendant l’attente du thread.

Le thread var T/var< devient alors désactivé à des fins de planification de threads et se trouve dormant jusqu’à ce que l’un des threads suivants se produise : >ul<>li li<Certains autres threads appellent la > méthode pour cet objet et <var>notify< est choisi arbitrairement comme thread à réveiller.><> <li>Un autre thread appelle la notifyAll méthode pour cet objet. <li>Un autre thread thread#interruption() interrompt le thread <var>T</var>. <li>La quantité spécifiée de temps réel s’est écoulée, plus ou moins. La quantité de temps réel, en nanosecondes, est donnée par l’expression 1000000 * timeoutMillis + nanos. Si timeoutMillis et nanos sont à la fois zéro, alors le temps réel n’est pas pris en compte et le thread attend jusqu’à ce qu’il soit réveillé par l’une des autres causes. <li>Thread <var>T</var> est réveillé de façon imperdente. (Voir ci-dessous.) </ul>

Le thread <var>T</var> est ensuite supprimé du jeu d’attente pour cet objet et réactivé pour la planification des threads. Il concurrence de la manière habituelle avec d’autres threads pour le droit de se synchroniser sur l’objet ; une fois qu’il a récupéré le contrôle de l’objet, toutes ses revendications de synchronisation sur l’objet sont restaurées à l’état quo ante , c’est-à-dire à la situation à partir du moment où la wait méthode a été appelée. Thread <var>T</var> retourne ensuite à partir de l’appel de la wait méthode. Ainsi, lors du retour de la wait méthode, l’état de synchronisation de l’objet et du thread T est exactement tel qu’il était lorsque la wait méthode a été appelée.

Un thread peut se réveiller sans être averti, interrompu ou expiré, un soi-disant <>réveil impulsant</em>. Bien que cela se produise rarement dans la pratique, les applications doivent se protéger contre elle en testant la condition qui doit avoir provoqué le réveil du thread et en continuant à attendre si la condition n’est pas satisfaite. Consultez l’exemple ci-dessous.

Pour plus d'informations sur cette rubrique, consultez la section 14.2, « Files d'attente de condition », dans Brian Goetz et les autres' <em Java Concurrency in Practice>/em< (Addison-Wesley, 2006) ou Item 69 in Joshua Bloch's >em<Effective Java, Second Edition>/em< (Addison-Wesley, 2008>).

Si le thread actuel est java.lang.Thread#interrupt() interrompu par un thread avant ou pendant son attente, un InterruptedException thread est levée. L’état<>/em< interrompu du thread actuel est effacé lorsque cette>exception est levée. Cette exception n’est pas levée tant que l’état de verrouillage de cet objet n’a pas été restauré comme décrit ci-dessus.

Java documentation pour java.lang.Object.wait(long, int).

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

Voir aussi

S’applique à