Como parar / matar o Java Thread de longa duração em tempo de execução? expirado -> cancelado -> estados interrompidos

Publicados: 2021-07-17

Como matar o thread Java demorando mais do que o esperado para terminar? timedout -> cancelado -> estado interrompido

Você já se perguntou como matar threads Java de longa duração? Você tem alguma das perguntas abaixo?

  • Matar/Parar um thread após certo período de tempo
  • Matando thread após algum limite de tempo especificado em Java
  • Como matar um thread Java
  • Como parar um thread em Java com um exemplo
  • como parar o thread no exemplo de código java
  • como parar um thread em java sem usar o método stop

Se você tiver alguma das perguntas abaixo, então você está no lugar certo. Hoje vamos ver um exemplo simples que demonstra maneiras Java8 de matar threads de longa duração.

O que é uma lógica:

  1. Criar classe CrunchifyJavaTaskTimeout.java
  2. Crie o executor Java Thread com apenas 1 tamanho de threadpool.
  3. Crie 4 tarefas futuras de um objeto CrunchifyRunner com tempo limite de 3 segundos
  4. CrunchifyRunner.java é uma classe simples que implementa o método call()
    • Introduz 20 seconds atraso se futureTask = 4
  5. Uma vez que o futuro atinge 3 seconds , ele cria uma exceção de tempo limite se o encadeamento ainda estiver em execução
    • Uma vez que o tempo limite expirou, precisamos cancelar a tarefa usando crunchifyFuture. cancel( true ) ;
    • Uma vez que futureTask é cancelado, ele acionará InterruptedException (lançado quando um encadeamento está esperando, dormindo ou ocupado de outra forma, e o encadeamento é interrompido, antes ou durante a atividade. Ocasionalmente, um método pode querer testar se o encadeamento atual foi interrompido, e em caso afirmativo, para lançar imediatamente essa exceção.)

Vamos começar:

Etapa 1 Criar a classe CrunchifyRunner.java

Etapa 2 Crie a classe CrunchifyJavaTaskTimeout.java

Etapa 3

Clique com o botão direito do mouse em CrunchifyJavaTaskTimeout.java e execute-o como um aplicativo Java.

Você verá abaixo o resultado no console do Eclipse.

Como matar o thread java de parada em tempo de execução

Deixe-me saber se você tem alguma dúvida sobre este tópico.