![]() |
|
||||
Planilha Web - Planilhas e Calculadoras online para estudantes e profissionais de Engenharia Civil, Engenharia Elétrica e Engenharia Mecânica. |
|||||
Você está aqui: Java ::: Dicas & Truques ::: Threads |
Aprenda a usar o método sleep() da classe ThreadQuantidade de visualizações: 18655 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: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- 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(): ----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------
// 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{
public static void main(String[] args){
// vamos criar duas threads
MinhaThread mt1 = new MinhaThread("Thread 1");
Thread t1 = new Thread(mt1);
t1.start();
MinhaThread mt2 = new MinhaThread("Thread 2");
Thread t2 = new Thread(mt2);
t2.start();
}
}
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: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- 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: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- 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 |
|
Delphi - Como retornar o caractere a partir de um determinado código ASCII em Delphi usando a função Chr() |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |





