Object.Wait Método

Definição

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

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

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

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

Aplica-se a