Object.Wait Método

Definición

Sobrecargas

Wait()

Hace que el subproceso actual espere hasta que se despierte, normalmente por ser em notificado/em> o <em>interrumpido</em>.<><

Wait(Int64, Int32)

Hace que el subproceso actual espere hasta que se despierte, normalmente por ser <notificado<>/em> o <em>interrumpido</em>, o hasta que haya transcurrido una cierta cantidad de tiempo real.

Wait(Int64)

Hace que el subproceso actual espere hasta que se despierte, normalmente por ser <notificado<>/em> o <em>interrumpido</em>, o hasta que haya transcurrido una cierta cantidad de tiempo real.

Wait()

Hace que el subproceso actual espere hasta que se despierte, normalmente por ser em notificado/em> o <em>interrumpido</em>.<><

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

Excepciones

si el subproceso que llama a este método no es el propietario del monitor de este objeto.

si se ha interrumpido el subproceso actual. El estado interrumpido del subproceso actual se borrará antes de que se produzca la excepción.

Comentarios

Hace que el subproceso actual espere hasta que se despierte, normalmente por ser em notificado/em> o <em>interrumpido</em>.<><

En todos los aspectos, este método se comporta como si wait(0L, 0) se hubiera llamado. Consulte la especificación del #wait(long, int) método para obtener más información.

Documentación de Java para java.lang.Object.wait().

Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el proyecto de código y se usan según los términos descritos en la creative Commons 2.5.

Consulte también

Se aplica a

Wait(Int64, Int32)

Hace que el subproceso actual espere hasta que se despierte, normalmente por ser <notificado<>/em> o <em>interrumpido</em>, o hasta que haya transcurrido una cierta cantidad de tiempo real.

[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

Parámetros

timeoutMillis
Int64

el tiempo máximo de espera, en milisegundos

nanos
Int32

tiempo adicional, en nanosegundos, en el intervalo comprendido entre 0 y 999999, ambos incluidos

Atributos

Excepciones

si millis , nanos o nanos > 999999.

si el subproceso que llama a este método no es el propietario del monitor de este objeto.

si se ha interrumpido el subproceso actual. El estado interrumpido del subproceso actual se borrará antes de que se produzca la excepción.

Comentarios

Hace que el subproceso actual espere hasta que se despierte, normalmente por ser <notificado<>/em> o <em>interrumpido</em>, o hasta que haya transcurrido una cierta cantidad de tiempo real.

El subproceso actual debe poseer el bloqueo de supervisión de este objeto. Consulte el #notify notify método para obtener una descripción de las formas en que un subproceso puede convertirse en el propietario de un bloqueo de monitor.

Este método hace que el subproceso actual (al que se hace referencia aquí como <var>T</var>) se coloque en el conjunto de espera para este objeto y, a continuación, para renunciar a todas las notificaciones de sincronización en este objeto. Tenga en cuenta que solo se han renunciado a los bloqueos de este objeto; cualquier otro objeto en el que se pueda sincronizar el subproceso actual permanece bloqueado mientras el subproceso espera.

El subproceso var T/var> se deshabilita para fines de programación de subprocesos y permanece inactivo hasta que se produce uno de los siguientes: <ul<>li>Otros subprocesos invocan el notify método para este objeto y <el subproceso var>T</var> se elige arbitrariamente como subproceso que se va a despertar.<>< <li>Otros subprocesos invocan el notifyAll método para este objeto. <li>otros subprocesos Thread#interrupt() interrumpe el subproceso <var>T</var>. <li>La cantidad especificada de tiempo real ha transcurrido, más o menos. La expresión da 1000000 * timeoutMillis + nanosla cantidad de tiempo real, en nanosegundos, . Si timeoutMillis y nanos son cero, entonces no se tiene en cuenta en tiempo real y el subproceso espera hasta que uno de los otros provoca. <li>Thread <var>T</var> se despierta falsamente. (Consulte a continuación). </Ul>

A continuación, el subproceso <var>T</var> se quita del conjunto de espera para este objeto y se vuelve a habilitar para la programación de subprocesos. Compite de la manera habitual con otros subprocesos para que el derecho se sincronice en el objeto; una vez que ha recuperado el control del objeto, todas sus notificaciones de sincronización en el objeto se restauran al status quo ante , es decir, a la situación a partir del momento en que se invocó el wait método. El subproceso <var>T</var> vuelve a partir de la invocación del wait método . Por lo tanto, al devolver el wait método, el estado de sincronización del objeto y del subproceso T es exactamente igual que cuando se invocó el wait método.

Un subproceso se puede reactivar sin recibir notificaciones, interrupciones o agotar el tiempo de espera, un llamado despertar <>falso</em>. Aunque esto rara vez se producirá en la práctica, las aplicaciones deben protegerse contra ella mediante la prueba de la condición que debe haber provocado que se despierte el subproceso y continúe esperando si no se cumple la condición. Observe el ejemplo siguiente.

Para obtener más información sobre este tema, vea la sección 14.2, "Colas de condición", en Brian Goetz y otros <em>Java Concurrency in Practice</em> (Addison-Wesley, 2006) o Item 69 in Joshua Bloch's <em>Effective Java, Second Edition</em> (Addison-Wesley, 2008).

Si el subproceso actual es java.lang.Thread#interrupt() interrumpido por cualquier subproceso antes o mientras está esperando, se produce una InterruptedException excepción . El <estado< de em>interrumpida/em> del subproceso actual se borra cuando se produce esta excepción. Esta excepción no se produce hasta que se haya restaurado el estado de bloqueo de este objeto, tal y como se ha descrito anteriormente.

Documentación de Java para java.lang.Object.wait(long, int).

Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el proyecto de código y se usan según los términos descritos en la creative Commons 2.5.

Consulte también

Se aplica a

Wait(Int64)

Hace que el subproceso actual espere hasta que se despierte, normalmente por ser <notificado<>/em> o <em>interrumpido</em>, o hasta que haya transcurrido una cierta cantidad de tiempo real.

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

Parámetros

timeoutMillis
Int64

el tiempo máximo de espera, en milisegundos

Atributos

Excepciones

si el subproceso que llama a este método no es el propietario del monitor de este objeto.

si se ha interrumpido el subproceso actual. El estado interrumpido del subproceso actual se borrará antes de que se produzca la excepción.

Comentarios

Hace que el subproceso actual espere hasta que se despierte, normalmente por ser <notificado<>/em> o <em>interrumpido</em>, o hasta que haya transcurrido una cierta cantidad de tiempo real.

En todos los aspectos, este método se comporta como si wait(timeoutMillis, 0) se hubiera llamado. Consulte la especificación del #wait(long, int) método para obtener más información.

Documentación de Java para java.lang.Object.wait(long).

Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el proyecto de código y se usan según los términos descritos en la creative Commons 2.5.

Consulte también

Se aplica a