No tutorial de hoje aprenderemos a trabalhar com sleep um dos muitos métodos para se trabalhar com threads. A função sleep (longo tempo em milissegundos) é deixar a thread corrente inativa (dormindo) por um tempo mínimo de milissegundos enquanto promove outra thread.

Então é o que iremos implementar hoje, a execução de dado trecho do código a partir de um dado intervalo de tempo. Começaremos criando um novo pacote, qual chamaremos de cursoJava.thread. para criar o pacote clique com o botão direito sobre a pasta src => new => package. E dentro do pacote de threads, criaremos a “classe AulaThread” botão direito do sobre o package => new => class.

O próximo passo será a implementação do método main para executar o código, visto que não temos nenhuma tela criada. Dentro do método principal escreveremos um laço de repetição, cuja condição de processamento será até que a variável de controle seja menor do que 10. E dentro desta estrutura de repetição implementaremos a instrução System.out.prinln(), apenas para exibir uma mensagem. Isto é, vamos simular alguma rotina de processamento para envio de e-mail.

for(int pos = 0; pos < 10; pos++){
System.out.println("Executando a rotina de envio de e-mail");
}

Ao executarmos estas linhas de código, veremos a mensagem sendo exibida dez vez no console. No entanto, o que vamos fazer agora é algo muito comum dentro da programação. Implementaremos uma rotina que deverá ser processada a cada 10 segundos, por exemplo. Threads também se aplicam em rotinas de backus. Um servidor deverá efetuar uma cópia de segurança dos dados todos os dias, ou seja, a cada vinte e quatro horas.

COMO FUNCIONA O SLEEP?

Assim, dentro do for, mas antes da instrução de impressão, que no caso simula a rotina de envio de e-mail. Chame a thread do pacote java.lang.

E então chame a função sleep, que por padrão faz com que a thread durma por milissegundo, ou seja, a thread dormirá por um segundo. Note que após a implementação, o Eclipse acusará um erro, e irá então sugerir que adicionemos uma exceção. Clique a adicione o “throws InterruptedException”.

Thread.sleep(1000);

Excute o código e veja que a mensagem começará a ser exibida na tela com um delay de um segundo. E assim sucessivamente, até que a condição de continuação do loop seja satisfeita. Para efeitos de teste e melhor visualização você pode mexer no tempo de resposta aumentando o tempo para dois, três ou mais segundos.

Em geração de pdf,s por exemplo, este recurso é muito útil para a implementação de um intervalo de cinco segundos. Dessa forma o sistema operacional terá tempo de esvaziar a memória para então processar a rotina de gerar o pdf.

E se eu desejar que a primeira interação do laço seja em tempo normal, e só depois implementar o delay? Neste caso é bem simples, basta apenas inverter a ordem das linhas de código.

for(int pos = 0; pos < 10; pos ++){
System.out.println("Executando a rotina de envio de e-mail");
Thread.sleep(2000);
}

EM POUCAS PALAVRAS

Começamos com threads de uma forma simples, usando a thread sleep para promover um “atraso” na execução do código. Entretanto, o seu uso mais comum é o processamento das threads em background, enquanto outros processos estão sendo executados.