Java et le Café : Servir des Boissons avec la Programmation Asynchrone

Introduction

La programmation asynchrone en Java est comme prendre des commandes de café tout en préparant d’autres boissons. Vous n’avez pas besoin d’attendre qu’une tâche soit terminée pour en commencer une autre. Dans ce cours, nous allons explorer comment utiliser la programmation asynchrone pour améliorer la réactivité de votre application.

Utilisation de CompletableFuture

Java fournit la classe CompletableFuture pour la programmation asynchrone.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
import java.util.concurrent.CompletableFuture;

public class Cafe {
  public static void main(String[] args) {
    CompletableFuture<Void> future = CompletableFuture.runAsync(() -> {
      System.out.println("Préparation du café...");
      // Code de préparation du café
    });

    System.out.println("Prendre une commande...");
    future.join(); // Attendre que la tâche soit terminée
    System.out.println("Café prêt!");
  }
}
1
2
3
4
$ java Cafe
Prendre une commande...
Préparation du café...
Café prêt!

Combinaison de Tâches Asynchrones

Vous pouvez combiner plusieurs tâches asynchrones.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
import java.util.concurrent.CompletableFuture;

public class Cafe {
  public static void main(String[] args) {
    CompletableFuture<Integer> coffeeTask = CompletableFuture.supplyAsync(() -> {
      System.out.println("Préparation du café...");
      return 2; // Exemple de calcul
    });

    CompletableFuture<Integer> result = coffeeTask.thenApply(cups -> cups * 2);

    System.out.println("Café préparé: " + result.join() + " tasses");
  }
}
1
2
3
$ java Cafe
Préparation du café...
Café préparé: 4 tasses

Conclusion

La programmation asynchrone en Java vous permet d’exécuter des tâches sans bloquer le flux principal, comme prendre des commandes tout en préparant des boissons. Utilisez la programmation asynchrone pour améliorer la réactivité de votre application.