DEV Community

FUNDAMENTOS JAVA
FUNDAMENTOS JAVA

Posted on

1

Suspendendo, retomando e encerrando threads

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.

Image description

Image description

Image description

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.

Sentry image

Hands-on debugging session: instrument, monitor, and fix

Join Lazar for a hands-on session where you’ll build it, break it, debug it, and fix it. You’ll set up Sentry, track errors, use Session Replay and Tracing, and leverage some good ol’ AI to find and fix issues fast.

RSVP here →

Top comments (0)

A Workflow Copilot. Tailored to You.

Pieces.app image

Our desktop app, with its intelligent copilot, streamlines coding by generating snippets, extracting code from screenshots, and accelerating problem-solving.

Read the docs

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay