Você está aqui: Java ::: Dicas & Truques ::: Threads |
Aprenda a usar o método sleep() da classe ThreadQuantidade de visualizações: 18529 vezes |
A classe Thread possui um método estático sleep() que nos permite pausar a execução da thread atual durante um determinado número de milisegundos. Veja a assinatura deste método: public static void sleep(long millis) throws InterruptedException Quando chamamos sleep(), a thread atual abandonará a CPA e irá para o estado "dormindo". Quando a quantidade de milisegundos transcorrer, a thread será movida para o estado "pronta" e será executada novamente tão logo o gerenciador de threads o permita. Veja um exemplo no qual temos duas threads. Note a chamada ao método sleep() da primeira thread(): // criamos uma classe que servirá como thread class MinhaThread implements Runnable{ private String nome; public MinhaThread(String nome){ this.nome = nome; } public void run(){ for(int i = 1; i <= 20; i++){ System.out.println(nome + ": " + i); if((i == 6) && (nome.equals("Thread 1"))){ try{ System.out.println(nome + " foi dormir um pouco"); Thread.sleep(5000); // 5 segundos } catch(InterruptedException e){ System.out.println(e.getMessage()); } } } } } public class Estudos{ Execute este código e perceberá que a primeira thread conta até 6 e vai "dormir". Quando este tempo é decorrido ela volta e finaliza seu trabalho. Uma detalhe importante é que a thread principal (aquela do método main()) fica aguardando a thread acordar. Este comportamento é alterado se colocarmos: System.exit(0); como última instrução no método main(). Note que não temos controle sobre quando tempo a CPU reserva para cada thread. Assim, é possível que as instruções: System.out.println(nome + " foi dormir um pouco"); Thread.sleep(5000); // 5 segundos não sejam executadas consecutivamente. Por ser que a thread 1 escreva que vai dormir, a thread 2 ganhe a CPU, seja executada e então somente quando a thread 1 retornar ela irá de fato dormir. |
![]() |
Desafios, Exercícios e Algoritmos Resolvidos de Java |
Veja mais Dicas e truques de Java |
Dicas e truques de outras linguagens |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |