Ofereço ajuda em Java, C/C++, Python, C#, LISP, AutoLisp, AutoCAD
+55 (062) 98553-6711
Ofereço ajuda em PHP, Python, C#, JavaScript, Laravel, Google Ads e SEO
+55 (062) 98243-1195

Você está aqui: Java ::: Dicas & Truques ::: Threads

Aprenda a usar o método sleep() da classe Thread

Quantidade 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.

Link para compartilhar na Internet ou com seus amigos:

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

E-Book 350 Exercícios Resolvidos de Java - PDF com 500 páginas
Domine lógica de programação e a linguagem Java com o nosso E-Book 350 Exercícios Exercícios de Java, para você estudar onde e quando quiser.

Este e-book contém exercícios resolvidos abrangendo os tópicos: Java básico, matemática e estatística, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book
E-Book 650 Dicas, Truques e Exercícios Resolvidos de Python - PDF com 1.200 páginas
Domine lógica de programação e a linguagem Python com o nosso E-Book 650 Dicas, Truques e Exercícios Exercícios de Python, para você estudar onde e quando quiser.

Este e-book contém dicas, truques e exercícios resolvidos abrangendo os tópicos: Python básico, matemática e estatística, banco de dados, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book

Linguagens Mais Populares

1º lugar: Java
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: C
6º lugar: Delphi
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby



© 2025 Arquivo de Códigos - Todos os direitos reservados
Neste momento há 20 usuários muito felizes estudando em nosso site.