English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Java에서 동기화 해시 맵핑과 동기화 해시 맵핑의 차이점

동기화 해시맵은 JDK1.5. 

에 포함된 클래스. 동기화 해시 매핑은 추가 또는 업데이트 작업 중에 임시 저장소의 슬롯 수준에서 잠금을 적용합니다. 따라서 동기화 해시 매핑은 매핑에 대한 동시 읽기 및 쓰기 작업을 허용합니다. 

동기화 해시맵(Collections.syncronizedHashMap())는 Collection 프레임워크의 메서드 중 하나입니다. 이 메서드는 전체 집합에 잠금을 적용합니다. 따라서 한 스레드가 매핑에 접근하는 동안 다른 스레드는 동일한 매핑에 접근할 수 없습니다.순서동기화 해시 매핑
1
동기화 해시 매핑
구현 
그것은 동기화 해시 매핑과 시리얼라이제이션 인터페이스를 구현한 클래스입니다.  
2
그것은 Collection 클래스의 메서드 중 하나입니다.
잠금 구조
부분 잠금 
3
전체 매핑을 잠금합니다.
성능 
여러 스레드가 동시에 매핑에 접근할 수 없습니다. 따라서 성능은 동기화 해시 매핑보다 낮습니다.
4
빈 키
NULL을 키나 값으로 사용할 수 없습니다. 
NULL을 키로 사용할 수 있습니다.
5 
동기화 변경 예외
그는 동기화 변경 예외를 일으키지 않습니다. 
동기화된 매핑에서 반환하는 이터레이터가 동기화 변경 예외를 일으킵니다

SynchronizedMap 예제

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");
      //동기화된 매핑 생성
      Map<Integer,String> syncmap = Collections.synchronizedMap(laptopmap);
      System.out.println("Synchronized map is: "+syncmap);
   }
}

ConcurrentHashMap---의 예제

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--- is: "+laptopmap);
   }
}