Olá a todos!
Tenho uma aplicação web que possui uma estrutura de multi-threading com sockets, conforme o código resumido abaixo:
//Thread principal que inicia e finaliza junto com o contexto da aplicação.
public class NetworkService extends Thread implements ServletContextListener {
public void run() {
while (true) {
executorService.submit(new Handler(serverSocket.accept()));
}
}
}
//Runnable com conexões sockets que continuam rodando após a finalização do contexto da aplicação.
class Handler implements Runnable {
while (((inputLine = in.readLine()) != null)) {
//executa tarefas
}
}
Ao finalizar o contexto a thread NetworkService é destruida numa boa, porém, não encontrei uma forma de destruir também os runnables que foram criados… Continuam “vivos” mesmo após finalizar o contexto da aplicação.
Alguma sugestão?
[]s