Java et le Café : Servir des Boissons avec le Multithreading

Introduction

Le multithreading en Java est comme avoir plusieurs baristas dans un café, travaillant simultanément pour servir des boissons plus rapidement. Dans ce cours, nous allons explorer comment utiliser le multithreading pour exécuter des tâches en parallèle et améliorer les performances.

Créer un Thread

Vous pouvez créer un thread en Java en étendant la classe Thread ou en implémentant l’interface Runnable.

Étendre la Classe Thread

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
class Barista extends Thread {
  public void run() {
    System.out.println("Servir un café!");
  }

  public static void main(String[] args) {
    Barista barista = new Barista();
    barista.start(); // Démarre le thread
  }
}
1
2
$ java Barista
Servir un café!

Implémenter l’Interface Runnable

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
class Barista implements Runnable {
  public void run() {
    System.out.println("Servir un café!");
  }

  public static void main(String[] args) {
    Thread thread = new Thread(new Barista());
    thread.start(); // Démarre le thread
  }
}
1
2
$ java Barista
Servir un café!

Synchronisation

La synchronisation est essentielle pour éviter les conflits lors de l’accès à des ressources partagées.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
class CoffeeMachine {
  synchronized void brew() {
    System.out.println("Préparation du café...");
    // Code de préparation du café
  }
}

class Barista extends Thread {
  CoffeeMachine machine;

  Barista(CoffeeMachine machine) {
    this.machine = machine;
  }

  public void run() {
    machine.brew();
  }
}

public class Cafe {
  public static void main(String[] args) {
    CoffeeMachine machine = new CoffeeMachine();
    new Barista(machine).start();
    new Barista(machine).start();
  }
}
1
2
3
$ java Cafe
Préparation du café...
Préparation du café...

Conclusion

Le multithreading en Java vous permet d’exécuter des tâches en parallèle, comme plusieurs baristas travaillant ensemble dans un café. Utilisez le multithreading pour améliorer les performances et servir des boissons plus rapidement.