logo

Hashtable vs ConcurrentHashMap

language-logoJava

• `Hashtable`과 `ConcurrentHashMap`은 모두 Java에서 제공하는 thread-safe한 Map 구현체이다. `Hashtable`은 Java 1.0부터 존재했으며, `ConcurrentHashMap`은 `Hashtable`의 동시성 성능을 개선하기 위해 Java 1.5에 등장했다.
• 성능 테스트 결과, `ConcurrentHashMap`이 `Hashtable`보다 더 뛰어난 성능을 보여주었다. 따라서 멀티스레드 환경에서는 `ConcurrentHashMap`을 사용하는 것이 더 효율적이다.
• Java에서의 Map 성능 비교 결과는 `HashMap` > `ConcurrentHashMap` > `Hashtable` 순이었으며, 이는 `HashMap`이 thread-safe하지 않아 동기화 오버헤드가 없기 때문이다.
• `Hashtable`은 `get()`, `put()` 모두 `synchronized`를 통해 테이블 전체를 lock하는 반면, `ConcurrentHashMap`은 `get()`에는 lock을 걸지 않고, `put()`에서만 사용되는 키 값에 따라 세분화된 lock을 제공하여 여러 스레드가 동시에 다른 부분을 수정할 수 있어 성능 차이가 발생한다.

thumbnail
북마크
공유하기
신고하기
5분 분량
조회수 181
profile-imagegongmeda
2년 전
Copyright © 2025. Codenary All Rights Reserved.