Métodos obsoletos: suspend(), resume() e stop() da classe Thread foram substituídos em Java 2.
final void resume( )
final void suspend( )
final void stop( )
Problemas causados:
suspend(): podia causar deadlock.
resume(): não podia ser usado sem suspend().
stop(): causava falhas graves na execução de threads.
Alternativa moderna: Usar variáveis de controle (flags) dentro do método run() para:
Suspensão: Flag configurada como "suspender" faz a thread pausar.
Retomada: Flag configurada como "em execução" faz a thread continuar.
Encerramento: Flag configurada como "encerrar" faz a thread terminar.
Variáveis de controle:
suspended: controla a suspensão da thread. Inicializada como false.
stopped: controla o encerramento da thread. Inicializada como false.
Método run():
Contém um bloco synchronized que verifica a variável suspended.
Se suspended for true, o método wait() é chamado para suspender a thread.
Suspensão da thread:
Para suspender, chama-se o método mysuspend(), que configura suspended como true.
Retomada da thread:
Para retomar, chama-se o método myresume(), que configura suspended como false e chama notify().
Encerramento da thread:
Para encerrar, chama-se o método mystop(), que configura stopped como true.
mystop() também configura suspended como false e chama notify() para garantir que a thread suspensa seja corretamente encerrada.
Top comments (0)