English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
HashMap concurrente es de jdk1.5Se introduce la clase. El mapeo hash concurrente aplica candados a nivel de búfer de almacenamiento denominado fragmento solo cuando se añade o actualiza el mapeo. Por lo tanto, el mapeo hash concurrente permite operaciones de lectura y escritura concurrentes en el mapeo.
El método synchronizedHashMap (Collection.syncronizedHashMap()) es un método del marco Collection. Este método aplica un candado a toda la colección. Por lo tanto, si un hilo está accediendo al mapeo, ningún otro hilo puede acceder al mismo mapeo.
Número | Clave | Mapeo hash concurrente | Mapeo hash sincronizado |
---|---|---|---|
1 | Implementación | Es una clase que implementa la interfaz de mapeo hash concurrente y la interfaz serializable. | Es un método de la clase Collection. |
2 | Estructura de bloqueo | Bloquear una parte | Bloquear toda la estructura de mapeo. |
3 | Rendimiento | ConcurrentHashMap permite operaciones de lectura y escritura concurrentes. Por lo tanto, el rendimiento es mejor que el de los mapeos sincronizados. | No se permite que múltiples hilos accedan al mapeo simultáneamente. Por lo tanto, el rendimiento es relativamente inferior al de ConcurrentHashMap. |
4 | Clave vacía | No se permite null como clave o valor. | Permite null como clave. |
5 | Excepción de modificación concurrente | No lanza una excepción de modificación concurrente. | El iterador devuelto por el mapeo sincronizado lanza una excepción de modificación 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"); //Crear un mapeo sincronizado Map<Integer,String> syncmap = Collections.synchronizedMap(laptopmap); System.out.println("Mapa sincronizado es: "+syncmap); } }
public class ConcurrentHashMap---Ejemplo { 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--- es: "+laptopmap); } }