Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Industrial programming >> Java

Maîtriser ConcurrentMap de Java : Maps Thread-Safe Expliquées

Interface Java ConcurrentMap

Apprenez comment ConcurrentMap de Java fournit des opérations de map thread-safe, ses méthodes principales et un exemple pratique avec ConcurrentHashMap.

L'interface ConcurrentMap étend java.util.Map et fournit une implémentation de map hautement concurrente et thread-safe. Elle garantit que plusieurs threads peuvent effectuer des opérations de lecture, écriture et mise à jour simultanément sans corrompre l'état interne de la map.

Puisque ConcurrentMap est une interface, vous ne pouvez pas l'instancier directement. L'implémentation la plus courante est java.util.concurrent.ConcurrentHashMap, qui offre des lectures sans verrou et un verrouillage à granularité fine pour les mises à jour.


Classes Implémentant ConcurrentMap

Bien que ConcurrentMap ne puisse pas être instanciée directement, vous pouvez créer une map concrète en utilisant l'une de ses implémentations. Le standard de facto est ConcurrentHashMap, mais des alternatives comme ConcurrentSkipListMap existent pour les besoins de map triée.


Utilisation de ConcurrentMap

Importez d'abord l'interface :

import java.util.concurrent.ConcurrentMap;

Puis créez une instance de ConcurrentHashMap :

ConcurrentMap<String, Integer> numbers = new ConcurrentHashMap<>();

Dans cet exemple, numbers est une map thread-safe où chaque clé String est associée à une valeur Integer.

Concepts clés :


Méthodes Clés de ConcurrentMap

En plus de toutes les opérations standard de Map, ConcurrentMap introduit plusieurs méthodes atomiques, sans verrou :

Pour une référence approfondie, voir la documentation officielle Java.


Utilisation de ConcurrentHashMap avec ConcurrentMap

import java.util.concurrent.ConcurrentMap;
import java.util.concurrent.ConcurrentHashMap;
public class Main {
    public static void main(String[] args) {
        // Créer une map thread-safe
        ConcurrentMap<String, Integer> numbers = new ConcurrentHashMap<>();
        // Insérer des éléments
        numbers.put("Two", 2);
        numbers.put("One", 1);
        numbers.put("Three", 3);
        System.out.println("ConcurrentMap: " + numbers);
        // Récupérer une valeur
        int value = numbers.get("One");
        System.out.println("Valeur Accédée: " + value);
        // Supprimer une paire clé/valeur
        int removed = numbers.remove("Two");
        System.out.println("Valeur Supprimée: " + removed);
    }
}

Sortie

ConcurrentMap: {One=1, Two=2, Three=3} Valeur Accédée: 1 Valeur Supprimée: 2

Pour une utilisation plus avancée, consultez la documentation ConcurrentHashMap.

Java

  1. Maîtriser les interfaces C# : Définition, implémentation et cas d'utilisation pratiques
  2. Maîtriser les opérateurs Java : Types, syntaxe et exemples pratiques
  3. Maîtriser les interfaces Java : concepts, implémentation et bonnes pratiques
  4. Maîtriser le try-with-resources Java : gestion automatique des ressources expliquée
  5. Maîtriser l'interface NavigableSet de Java : Navigation, tri et exemples pratiques
  6. Maîtriser les expressions lambda Java : Des bases à l'API Stream
  7. Interface vs Classe Abstraite en Java : Comment Choisir la Bonne Abstraction
  8. Comprendre les interfaces Java : Définitions, Usages et Bonnes pratiques
  9. Java 9 : Méthodes privées dans les interfaces — Encapsulation et réutilisation