Olá, pessoal, estou desenvolvendo um sistema de chat em java, onde faço uso de muitas threads, pra evitar probelmas com desempenho, no lado do servidor eu pensei em um sistema que remove threads bloqueadas que deveriam fazer a autenticação do client verificando nome de usuário e senha, estas threads ficam bloqueadas enquanto o client não envia os dados. O sistema é uma thread de controle que verifica a lista de threads de autenticação e remove as que estão ativas há mais de 1 minuto. Eu queria que o loop de verificação rodasse de minuto em minuto, pra isso, eu chamo Thread,Sleep dentro de um while:
public void run(){
while(active){
//Código de verificação
try{
this.sleep(60000);
}catch(InterruptedException e){
this.interrupt();
}
}
}
O problema é que notei que o NetBeans me mostra o aviso “Invoking Thread.sleep in loop can cause performance problems”, daí fiquei curioso pra entender o motivo, principalmente porque pensei que fazendo a verificação em intervalos, eu teria alguma vantagem em perfomance, e o NetBeans me mostra uma mensagem justamente de perda de perfomance. Se alguém souber a resposta, ficaria muito feliz em saber. Se alguém tiver uma dica melhor de implementação, também ficaria feliz em aprender.