Ritarda di pochi secondi in Java

Mohammad Irfan 12 ottobre 2023
  1. Effettuare un ritardo utilizzando il metodo Thread.sleep() in Java
  2. Effettuare un ritardo utilizzando il metodo TimeUnit.sleep() in Java
  3. Effettuare un ritardo utilizzando ScheduledExecutorService in Java
  4. Effettuare un ritardo utilizzando ScheduledExecutorService in Java
Ritarda di pochi secondi in Java

Questo tutorial introduce come fare un ritardo in Java ed elenca alcuni codici di esempio per capirlo.

Ci sono diversi modi per creare un ritardo, come i metodi TimeUnit.sleep(), ScheduleAtFixedRate() e Thread.sleep(), ecc. Vediamo gli esempi.

Effettuare un ritardo utilizzando il metodo Thread.sleep() in Java

Thread è una classe Java che viene utilizzata per creare ed eseguire attività contemporaneamente e fornisce un metodo sleep() per sospendere l’esecuzione corrente per un po'.

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);
    }
  }
}

Produzione:

Sleep 0
Sleep 1

Effettuare un ritardo utilizzando il metodo TimeUnit.sleep() in Java

In questo esempio, abbiamo utilizzato il metodo sleep() della classe TimeUnit, che viene utilizzato per ritardare l’esecuzione per il tempo specificato. La classe TimeUnit appartiene a un pacchetto API simultaneo in 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);
    }
  }
}

Produzione:

Sleep 0
Sleep 1

Effettuare un ritardo utilizzando ScheduledExecutorService in Java

Java fornisce una classe ScheduledExecutorService per pianificare l’esecuzione in un ambiente simultaneo. Possiamo usare il metodo run() al suo interno per eseguire il percorso di esecuzione separato. Vedi l’esempio sotto.

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... ");
  }
}

Produzione:

Task Executing... 
Task Executing... 
Task Executing... 

Effettuare un ritardo utilizzando ScheduledExecutorService in Java

Se stai lavorando con Java 9 o versione successiva, puoi usare il concetto di riferimento del metodo per chiamare il metodo all’interno del metodo scheduleAtFixedRate(). Vedi l’esempio sotto.

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... ");
  }
}

Produzione:

Task Executing... 
Task Executing... 
Task Executing...