🛢️Parcours Fioul GroupéJava · Chapitre 22
Accueil › Java › Chapitre 22
Chapitre 22 / 22 · dernier

La programmation parallèle

Exécuter plusieurs traitements en même temps : threads, ExecutorService et sûreté d'accès concurrent. Le chapitre qui referme le parcours Java.

1 Notion

Threads et ExecutorService

Un thread est un fil d'exécution parallèle. Plutôt que de les gérer à la main, on utilise un ExecutorService (un pool de threads).

import java.util.concurrent.*;

ExecutorService pool = Executors.newFixedThreadPool(4);
pool.submit(() -> envoyerEmailConfirmation(participant));
pool.shutdown();
Pourquoi — paralléliser des tâches indépendantes (envois d'emails, appels réseau) accélère nettement le traitement.
2 Notion

Accès concurrent

Le piège — deux threads qui modifient la même variable sans protection produisent des résultats faux (race condition).
// compteur de volume partagé, sûr en concurrence
AtomicInteger volumeTotal = new AtomicInteger(0);
volumeTotal.addAndGet(1500);   // atomique

// ou une collection concurrente
Map<String,Integer> parCommune = new ConcurrentHashMap<>();
Rappel transactions — côté base, c'est le rôle des transactions et de l'isolation (parcours MySQL, chapitre 11). Application et base collaborent pour la cohérence.
🛢️ Sur le projet Fioul Groupé

À l'approche de la clôture, de nombreux foyers s'inscrivent en même temps : le cumul du volume doit rester exact. C'est un problème de concurrence — géré côté Java par des structures sûres (AtomicInteger, ConcurrentHashMap) et côté base par les transactions. Le projet fioul illustre les deux facettes du même enjeu.

🎉 Parcours Java terminé

Des types primitifs jusqu'à la programmation parallèle, en passant par la POO, les collections, les Streams, les génériques et les tests, tu maîtrises désormais le langage dans lequel vit l'API du projet Fioul Groupé. C'est le socle direct du parcours Spring Boot. Retour au portail ou au sommaire.

À retenir
← Chapitre 21