프로그래밍언어/Java

자바(Java) HashMap, HashTable, ConcurrentHashMap 차이

멍토 2021. 10. 27.

HashMap : 비동기로 처리가 되어있어 성능이 다른 Map들에 비해 좋다.

 

HashTable : JCF가 나오기 전에 만들어진 레거시 클래스로 대부분의 메서드에 동기화가 걸려있다. 그로 인해 단일 스레드 환경에서 성능이 떨어진다.

 

ConcurrentHashMap : 멀티 스레드 환경에서 동시성을 보장하기 위해 만들어진 클래스

JDK 1.5 버전에서 나왔다.

get에는 동기화 처리가 되어있지 않으며 put에 보면 메서드에 붙어있는 것이 아니라 메서드 내부에 들어있는 것을 알 수 있다.

특정 상황에서만 동기화가 동작하게 함으로써 병목현상을 최소화 처리를 했다.

댓글

💲 광고입니다.