관리 메뉴

어읽로꾸거

[Java] HashMap, HashTable, ConcurrentHashMap 비교 본문

정리

[Java] HashMap, HashTable, ConcurrentHashMap 비교

어읽로꾸거 2019. 7. 1. 11:10

HashMap

HashMap은 동기화(Synchronized) 처리가 되어있지 않음. 싱글스레드 환경에서 이용할 수 있지만 멀티스레드 환경에선 안정성을 보장할 수 없음. Key, Value에 null 사용할 수 있음

HashTable

HashTable은 동기화(Synchronized) 처리가 되어있음. 싱글스레드에서는 느리므로 굳이 이용할 필요는 없음.

대신 멀티스레드 환경에서 안정성이 보장됨. Key, Value에 null 사용할 수 없음

ConcurrentHashMap

ConcurrentHashMap은 HashMap에 동기화(Synchronized) 처리를 한 상태임. HashTable보다 빠른 성능을 가짐. 하지만 Key, Value에 null 사용할 수 없음

SynchronizedMap과 다른점?

SynchronizedMap은 전체적으로 동기화 관리를 하지만 ConcurrentHashMap은 부분적으로 동기화 관리를 하므로 조금 더 효율적임