서비의 다락방

뒤로 검색

ConcurrentHashMap , Collections.synchronizedMap(Map) 어떤걸 써야 하는거?

2015/02/04 17:41

멀티쓰레드 환경하에서 적절히 사용할 수 있는 Map계열 자료형으로 ConcurrentHashMap , Collections.synchronizedMap(Map) 이 있는데 어떤걸 사용하는게 더 효과적인지 확인해 봤다.

https://ria101.wordpress.com/2011/12/12/concurrenthashmap-avoid-a-common-misuse/ 과 http://stackoverflow.com/questions/1291836/concurrenthashmap-vs-synchronized-hashmap 의 글을 통해 Collections.synchronizedMap(Map) 과 ConcurrentHashMap은 lock 메카니즘이 다름을 알 수 있었다.

다음은 대표적인 map 계열 클래스의 차이점을 표로 정리.
속성 HahsMap Hashtable ConcurrentHashMap
Null value/key 허용 허용 비허용
thread safe 아님 안전
lock 메카니즘 없음 전체 lock portion of map
iterator fail-fast fail-safe

Tags

Collections.synchronizedMap, ConcurrentHashMap, java, map
이 페이지는 Textcube 1.10.9 : Tempo primo 로 구동됩니다 데스크탑 화면