English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Concurrent Hashmap est dans JDK1.5Class. Le HashMap concurrent applique un verrou au niveau des réservoirs appelés fragments lors de l'ajout ou de la mise à jour de la carte. Par conséquent, le HashMap concurrent permet des opérations de lecture et d'écriture concurrentes sur la carte.
La méthode synchronizedHashMap() de Collection est une méthode du cadre Collection. Cette méthode applique un verrou à l'ensemble de la collection. Par conséquent, si un thread accède à la carte, aucun autre thread ne peut accéder à la même carte.
Numéro | Clé | HashMap concurrent | HashMap synchronisée |
---|---|---|---|
1 | Réalisation | C'est une classe qui implémente l'interface de hash mapping concurrent et de sérialisation. | C'est une méthode de la classe Collection. |
2 | Mécanisme de verrouillage | Verrouiller une partie | Verrouiller l'ensemble de la carte. |
3 | Performance | Le HashMap concurrent permet des lectures et écritures concurrentes. Par conséquent, la performance est meilleure que celle de la carte synchronisée. | Plusieurs threads ne peuvent pas accéder simultanément à la carte. Par conséquent, la performance est relativement inférieure à celle du HashMap concurrent. |
4 | Clé vide | Il n'est pas permis d'utiliser null en tant que clé ou valeur. | Il permet null en tant que clé. |
5 | Exception de modification concurrente | Il ne provoque pas d'exception de modification concurrente. | L'itérateur retourné par la carte synchronisée provoque une exception de modification concurrente |
public class SynchronizedMapExample { public static void main(String[] args) { Map<Integer,String> laptopmap = new HashMap<Integer,String>(); laptopmap.put(1,"IBM"); laptopmap.put(2,"Dell"); laptopmap.put(3,"HCL"); //Créer une carte synchronisée Map<Integer,String> syncmap = Collections.synchronizedMap(laptopmap); System.out.println("Map synchronisée est : "+syncmap); } }
public class ConcurrentHashMap---Example { public static void main(String[] args) { //ConcurrentHashMap--- Map<Integer,String> laptopmap = new ConcurrentHashMap---<Integer,String>(); laptopmap.put(1,"IBM"); laptopmap.put(2,"Dell"); laptopmap.put(3,"HCL"); System.out.println("ConcurrentHashMap--- est: "+laptopmap); } }