JAVA5 java.util.concurrent.ConcurrentHashMap

Java 2008. 6. 27. 10:13
jdk1.5.x 버전부터 java.util.concurrent 패키지가 추가 되었으며
몇몇 유용한 클래스들이 존재한다.

이번에 소개할 클래스는 ConcurrentHashMap이다.

클래스명을 통해서도 쉽게 유추 되겠지만
동기화를 제공하는 Map구현 클래스이다.


그럼 이전 jdk버전에서 제공되던 Hashtable과 HashMap과의 어떤 차이가 있을까?

우선 jdk1.5.x 이전버전의 Hashtable과 HashMap의 차이점을 살펴보자.
1. 동기화 제공 여부
2. null값 포함 가능 여부
Hashtable을 통해 생성된 객체는 값 변경시에 동기화를 지원하는 반면
HashMap은 동기화를 지원하지 않는다.
이런이유에서 속도는 HashMap이 훨씬 빠르다.

또한 Hashtable은 key, value에 null을 값을 가질 수 없지만
HashMap은 가질 수 있다.

특별히 동기화가 필요하지 않는 경우 성능문제로
대 부분 HashMap을 사용했었다.

그렇다면 ConcurrentHashMap은?

일반적인 기능 및 특징은 Hashtable과 동일하다.
다만 Hashtable의 단점인 성능 부분을 엄청 향상시켜서
HashMap과 거의 성능차이가 없을 정도로 빨라졌다고 한다.

(아직 성능 테스트는 해보지 않았음.)

현재 진행되고 있는 Project에서 적용해서 사용하고 있는데
아직까지 문제발생된 부분은 없다.


설정

트랙백

댓글