Object.Wait Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Sobrecargas
| Nome | Description |
|---|---|
| Wait() |
Faz com que o thread atual aguarde até ser despertado, normalmente por ser <notificado/em> ou <em>interrompido</em>.<> |
| Wait(Int64) |
Faz com que o thread atual aguarde até que ele seja despertado, normalmente por ser <>notificado</em> ou <em>interrompido</em>, ou até que uma determinada quantidade de tempo real tenha decorrido. |
| Wait(Int64, Int32) |
Faz com que o thread atual aguarde até que ele seja despertado, normalmente por ser <>notificado</em> ou <em>interrompido</em>, ou até que uma determinada quantidade de tempo real tenha decorrido. |
Wait()
Faz com que o thread atual aguarde até ser despertado, normalmente por ser <notificado/em> ou <em>interrompido</em>.<>
[Android.Runtime.Register("wait", "()V", "")]
public void Wait();
[<Android.Runtime.Register("wait", "()V", "")>]
member this.Wait : unit -> unit
- Atributos
Exceções
se o thread que chama esse método não for o proprietário do monitor deste objeto.
se o thread atual tiver sido interrompido. O status interrompido do thread atual será limpo antes que a exceção seja gerada.
Comentários
Faz com que o thread atual aguarde até ser despertado, normalmente por ser <notificado/em> ou <em>interrompido</em>.<>
Em todos os aspectos, esse método se comporta como se wait(0L, 0) tivesse sido chamado. Consulte a especificação do #wait(long, int) método para obter detalhes.
Java documentação para java.lang.Object.wait().
Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Project Open Source do Open Source e usadas de acordo com os termos descritos na Creative Commons 2.5.
Confira também
- Notify()
- NotifyAll()
- Wait(Int64)
- <xref:Java.Lang.Object.Wait(System.Int64%2c+System.Int32)>
- Thread
Aplica-se a
Wait(Int64)
Faz com que o thread atual aguarde até que ele seja despertado, normalmente por ser <>notificado</em> ou <em>interrompido</em>, ou até que uma determinada quantidade de tempo real tenha decorrido.
[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
o tempo máximo de espera, em milissegundos
- Atributos
Exceções
if millis .
se o thread que chama esse método não for o proprietário do monitor deste objeto.
se o thread atual tiver sido interrompido. O status interrompido do thread atual será limpo antes que a exceção seja gerada.
Comentários
Faz com que o thread atual aguarde até que ele seja despertado, normalmente por ser <>notificado</em> ou <em>interrompido</em>, ou até que uma determinada quantidade de tempo real tenha decorrido.
Em todos os aspectos, esse método se comporta como se wait(timeoutMillis, 0) tivesse sido chamado. Consulte a especificação do #wait(long, int) método para obter detalhes.
Java documentação para java.lang.Object.wait(long).
Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Project Open Source do Open Source e usadas de acordo com os termos descritos na Creative Commons 2.5.
Confira também
- Notify()
- NotifyAll()
- Wait()
- <xref:Java.Lang.Object.Wait(System.Int64%2c+System.Int32)>
- Thread
Aplica-se a
Wait(Int64, Int32)
Faz com que o thread atual aguarde até que ele seja despertado, normalmente por ser <>notificado</em> ou <em>interrompido</em>, ou até que uma determinada quantidade de tempo real tenha decorrido.
[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
o tempo máximo de espera, em milissegundos
- nanos
- Int32
tempo adicional, em nanossegundos, no intervalo de 0-999999 inclusive
- Atributos
Exceções
se millis , nanos ou nanos >
999999.
se o thread que chama esse método não for o proprietário do monitor deste objeto.
se o thread atual tiver sido interrompido. O status interrompido do thread atual será limpo antes que a exceção seja gerada.
Comentários
Faz com que o thread atual aguarde até que ele seja despertado, normalmente por ser <>notificado</em> ou <em>interrompido</em>, ou até que uma determinada quantidade de tempo real tenha decorrido.
O thread atual deve ser proprietário do bloqueio de monitor desse objeto. Consulte o #notify notify método para obter uma descrição das maneiras pelas quais um thread pode se tornar o proprietário de um bloqueio de monitor.
Esse método faz com que o thread atual (conhecido aqui como <var>T</var>) se coloque no conjunto de espera para esse objeto e, em seguida, abra mão de todas as declarações de sincronização neste objeto. Observe que somente os bloqueios neste objeto são liberados; quaisquer outros objetos nos quais o thread atual pode ser sincronizado permanecem bloqueados enquanto o thread aguarda.
Thread <var>T</var> então fica desabilitado para fins de agendamento de thread e fica inativo até que um dos seguintes ocorra: <ul><li>Algum outro thread invoca o notify método para este objeto e thread <var>T</var> passa a ser arbitrariamente escolhido como o thread a ser despertado.
<li>Algum outro thread invoca o notifyAll método para este objeto.
<li>Algum outro thread Thread#interrupt() interrompe thread <var>T</var>.
<li>A quantidade especificada de tempo real decorrido, mais ou menos. A quantidade de tempo real, em nanossegundos, é fornecida pela expressão 1000000 * timeoutMillis + nanos. Se timeoutMillis e nanos ambos forem zero, o tempo real não será levado em consideração e o thread aguarda até ser despertado por uma das outras causas.
<li>Thread <var>T</var> é despertado espúrio. (Veja abaixo.) </ul>
O thread <var>T</var> é removido do conjunto de espera para esse objeto e habilitado novamente para agendamento de thread. Ele compete da maneira usual com outros threads pelo direito de sincronizar no objeto; depois de recuperar o controle do objeto, todas as suas declarações de sincronização no objeto serão restauradas para o status quo ante , ou seja, para a situação a partir do momento em que o wait método foi invocado. Thread <var>T</var> retorna da invocação do wait método. Assim, ao retornar do wait método, o estado de sincronização do objeto e do thread T é exatamente como era quando o wait método foi invocado.
Um thread pode acordar sem ser notificado, interrompido ou cronometrado, um chamado <>em wakeup</em> espúrio. Embora isso raramente ocorra na prática, os aplicativos devem se proteger contra ele testando a condição que deveria ter causado o despertar do thread e continuando a esperar se a condição não estiver satisfeita. Veja o exemplo abaixo.
Para obter mais informações sobre este tópico, consulte a seção 14.2, "Filas de Condição", em Brian Goetz e outros em <>Java Simultaneidade na Prática</em> (Addison-Wesley, 2006) ou Item 69 no Joshua Bloch's <em>Effective Java, Second Edition</em> (Addison-Wesley, 2008).
Se o thread atual for java.lang.Thread#interrupt() interrompido por qualquer thread antes ou enquanto ele estiver aguardando, um InterruptedException será gerado.
<O >status</em> interrompido do thread atual é desmarcado quando essa exceção é gerada. Essa exceção não é gerada até que o status de bloqueio desse objeto tenha sido restaurado, conforme descrito acima.
Java documentação para java.lang.Object.wait(long, int).
Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Project Open Source do Open Source e usadas de acordo com os termos descritos na Creative Commons 2.5.
Confira também
- Notify()
- NotifyAll()
- Wait()
- <xref:Java.Lang.Object.Wait(System.Int64%2c+System.Int32)>
- Thread