Como Atrasar Poucos Segundos em Java
-
Faça um atraso utilizando o método
Thread.sleep()
em Java -
Faça um atraso utilizando o método
TimeUnit.sleep()
em Java -
Faça um atraso utilizando o
ScheduledExecutorService
em Java -
Faça um atraso utilizando o
ScheduledExecutorService
em Java
Este tutorial introduz como fazer um atraso em Java e lista alguns exemplos de códigos para entendê-lo.
Há várias maneiras de criar um atraso, como TimeUnit.sleep()
, ScheduleAtFixedRate()
, e Thread.sleep()
métodos, etc. Vamos ver os exemplos.
Faça um atraso utilizando o método Thread.sleep()
em Java
A Thread
é uma classe Java que é utilizada para criar e executar tarefas simultaneamente e fornece um método sleep()
para pausar a execução atual por um tempo.
public class SimpleTesting {
public static void main(String[] args) {
try {
for (int i = 0; i < 2; i++) {
Thread.sleep(1000);
System.out.println("Sleep " + i);
}
} catch (Exception e) {
System.out.println(e);
}
}
}
Resultado:
Sleep 0
Sleep 1
Faça um atraso utilizando o método TimeUnit.sleep()
em Java
Neste exemplo, utilizamos o método sleep()
da classe TimeUnit
, que é utilizado para fazer um atraso de execução pelo tempo especificado. A classe TimeUnit
pertence a um pacote API concorrente em Java.
import java.util.concurrent.TimeUnit;
public class SimpleTesting {
public static void main(String[] args) {
try {
for (int i = 0; i < 2; i++) {
TimeUnit.SECONDS.sleep(2);
System.out.println("Sleep " + i);
}
} catch (Exception e) {
System.out.println(e);
}
}
}
Resultado:
Sleep 0
Sleep 1
Faça um atraso utilizando o ScheduledExecutorService
em Java
Java fornece uma classe ScheduledExecutorService
para agendar a execução em um ambiente concorrente. Podemos utilizar o método run()
dentro dele para executar o caminho de execução separado. Veja o exemplo abaixo.
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
public class Main {
public static void main(String args[]) {
try {
final ScheduledExecutorService executorService = Executors.newSingleThreadScheduledExecutor();
executorService.scheduleAtFixedRate(new Runnable() {
@Override
public void run() {
executeTask();
}
}, 0, 1, TimeUnit.SECONDS);
} catch (Exception e) {
System.out.println(e);
}
}
private static void executeTask() {
System.out.println("Task Executing... ");
}
}
Resultado:
Task Executing...
Task Executing...
Task Executing...
Faça um atraso utilizando o ScheduledExecutorService
em Java
Se você estiver trabalhando com Java 9 ou versão superior, você pode utilizar o conceito de referência do método para chamar o método dentro do método scheduleAtFixedRate()
. Veja o exemplo abaixo.
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
public class SimpleTesting {
public static void main(String[] args) {
try {
final ScheduledExecutorService executorService = Executors.newSingleThreadScheduledExecutor();
executorService.scheduleAtFixedRate(SimpleTesting::executeTask, 1, 2, TimeUnit.SECONDS);
} catch (Exception e) {
System.out.println(e);
}
}
private static void executeTask() {
System.out.println("Task Executing... ");
}
}
Resultado:
Task Executing...
Task Executing...
Task Executing...