0Pricing
Java Academy · Leçon

Collections atomiques et concurrentes

Apprenez à utiliser des variables atomiques et des collections concurrentes pour assurer la sécurité des threads.

Collections atomiques et concurrentes est une leçon Java Academy gratuite sur CoddyKit. Ceci est la leçon 2 sur 3. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Java Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Java Academy comprend 3 leçons au total.

Introduction

Les variables atomiques et les collections concurrentes simplifient la programmation sûre en environnement multithread.

AtomicInteger

AtomicInteger propose des opérations atomiques d’incrémentation, de décrémentation et de comparaison-échange.

Code : AtomicInteger

AtomicInteger garantit que les mises à jour sont sûres pour les fils d’exécution sans verrous explicites.

import java.util.concurrent.atomic.*;public class Main {
  public static void main(String[] args) throws Exception {
    AtomicInteger count = new AtomicInteger(0);
    Thread t1 = new Thread(() -> { for(int i=0;i<1000;i++) count.incrementAndGet(); });
    Thread t2 = new Thread(() -> { for(int i=0;i<1000;i++) count.incrementAndGet(); });
    t1.start(); t2.start();
    t1.join(); t2.join();
    System.out.println("Count = " + count.get());
  }
}

Collections concurrentes

Les collections concurrentes, comme ConcurrentHashMap ou CopyOnWriteArrayList, gèrent les accès concurrents en toute sécurité.

Code : ConcurrentHashMap

ConcurrentHashMap permet d’effectuer des écritures et des lectures concurrentes en toute sécurité.

import java.util.concurrent.*;public class Main {
  public static void main(String[] args) throws Exception {
    ConcurrentHashMap<String, Integer> map = new ConcurrentHashMap<>();
    Thread t1 = new Thread(() -> { map.put("A", 1); });
    Thread t2 = new Thread(() -> { map.put("B", 2); });
    t1.start(); t2.start();
    t1.join(); t2.join();
    System.out.println(map);
  }
}

Code : CopyOnWriteArrayList

CopyOnWriteArrayList évite ConcurrentModificationException pendant l’itération.

import java.util.concurrent.*;public class Main {
  public static void main(String[] args) {
    CopyOnWriteArrayList<String> list = new CopyOnWriteArrayList<>();
    list.add("Hello");
    list.add("World");
    for(String s : list) {
      list.add("Extra"); // safe even during iteration
      System.out.println(s);
    }
  }
}

Vérification des éléments atomiques et concurrents

Vérification rapide : pourquoi utiliser un AtomicInteger plutôt qu’un int ordinaire avec plusieurs fils d’exécution ?

Récapitulatif

Récapitulatif : utilisez les classes atomiques pour les compteurs sûrs en environnement multithread et les collections concurrentes pour les structures de données partagées sûres.

Questions Fréquemment Posées

La leçon « Collections atomiques et concurrentes » est-elle gratuite ?

Oui — le texte complet de « Collections atomiques et concurrentes » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Java Academy, passe à CoddyKit PRO. Le cours Java Academy comprend 3 leçons au total.

Qu'est-ce que j'apprendrai dans « Collections atomiques et concurrentes » ?

Apprenez à utiliser des variables atomiques et des collections concurrentes pour assurer la sécurité des threads. Tu pratiques Java Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer Java Academy ?

Aucune expérience préalable n'est requise. Java Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 2 sur 3.

Combien de temps prend la leçon « Collections atomiques et concurrentes » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon Java Academy ?

Oui. Chaque leçon Java Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Synchronisation et verrous
  2. Collections atomiques et concurrentes
  3. Erreurs courantes en programmation concurrente
← Retour à Java Academy