Boa tarde, pessoal!
Então, eu crei um código bem simples que está executando com sucesso, porém minha dúvida é: eu estou utilizando a estrutura de repetiçãowhile(true) e eu colocar meu aplicativo em execução por mais de 5 horas sem interrupção, por exemplo, é possível que gere algum dano ao processador ou qualquer outro tipo de problema?
Se sua aplicação entrou em loop (o nome técnico que se dá para uma aplicação que não sai sozinha de um laço e precisa ser interrompida), ela pode estar usando até 100% de um núcleo do processador (depende, é claro, do que ela estiver fazendo).
Isso implica em aquecimento, mas se seu computador estiver corretamente ventilado não deve provocar nenhum problema do tipo “queimar o computador”.
GusMcCart
Só uma pergunta, qual o objetivo do código? As vezes alguém aparece com uma implementação melhor ou com alguma idéia para melhorar isso…
E
entanglement
Ela quer mostrar continuamente o horário corrente.
Dona Vanessa, o código abaixo, em vez de gastar 100% de CPU (que é o seu caso) gasta bem menos e não deve ficar rolando a tela feito doido, como é o que ocorre. Tente rodar o código abaixo (observação: o resultado dentro do Eclipse ou do NetBeans é uma tela rolando, mas no console do Windows ou do Linux ele mostra só uma linha que fica sendo atualizada continuamente. São coisas do caracter “\r” …
importjava.util.Calendar;publicclassTesteRelogio{publicstaticvoidmain(String[]args){intcount=1;while(true){Calendard=Calendar.getInstance();System.out.printf("%02d:%02d:%02d - Contador = %5d\r",d.get(Calendar.HOUR_OF_DAY),d.get(Calendar.MINUTE),d.get(Calendar.SECOND),count);count++;// A linha abaixo espera meio segundo. try{Thread.sleep(500);}catch(InterruptedExceptionex){}}}}
vanessa.tenorio
Muito obrigada pelas informações, entanglement e GusMcCart !!!
Então, a princípio o objetivo do código é estar apresentando em um jFrame a data atual, além das horas, e também apresentará neste mesmo jFrame, valores que estão sendo inseridos em um banco de dados, no momento da inserção do mesmo.
Grata!
E
entanglement
Ah, mas neste caso (botar um reloginho em um JFrame) você precisa de um Timer, não de um loop infinito (que vai simplesmente travar a tela).
vanessa.tenorio
entanglement:
Ela quer mostrar continuamente o horário corrente.
Dona Vanessa, o código abaixo, em vez de gastar 100% de CPU (que é o seu caso) gasta bem menos e não deve ficar rolando a tela feito doido, como é o que ocorre. Tente rodar o código abaixo (observação: o resultado dentro do Eclipse ou do NetBeans é uma tela rolando, mas no console do Windows ou do Linux ele mostra só uma linha que fica sendo atualizada continuamente. São coisas do caracter "\r" ...
importjava.util.Calendar;publicclassTesteRelogio{publicstaticvoidmain(String[]args){intcount=1;while(true){Calendard=Calendar.getInstance();System.out.printf("%02d:%02d:%02d - Contador = %5d\r",d.get(Calendar.HOUR_OF_DAY),d.get(Calendar.MINUTE),d.get(Calendar.SECOND),count);count++;// A linha abaixo espera meio segundo. try{Thread.sleep(500);}catch(InterruptedExceptionex){}}}}
Entanglement, 100% do meu problema solucionado!!! Era exatamente o gasto exagerado da CPU que eu temia, mas notei que aplicando a linha de espera de meio segundo que voce indicou, o meu projeto realizou a mesma funcionalidade, porém consumindo bem menos. :D
Muitíssimo Obrigada, GusMcCart e Entanglement!!!
GusMcCart
Por isso perguntei o motivo do código entanglement… Vi que é pra pegar a data e hora atual, mas desse jeito que ela fez se jogar num JFrame…