깊게 들어가기에는 머리가 복잡해서 일단 간단하게 정리하려 한다.
사용 방법
Map<K,V> map = new ConcurrentHashMap<K,V>();
특징
- 성능 저하없이 스레드로부터 안전한 구현이 가능하다.
- key, value에 null을 허용하지 않는다.
- 동시 읽기 및 쓰기 액세스에 최적화되어 있어 고성능 멀티스레드 애플리케이션에 적합하다.
- 동기화 시, Map 전체에 동기화 락을 걸지 않고, Map을 쪼개어 락을 건다.
쓰는 이유
- 트래픽이 적은 서비스나 싱글스레드 환경의 경우 HashMap 사용해도 됨 (HashMap이 추가,삭제에서는 더 빠름)
- 멀티스레드 환경에서는 ConcurrentHashMap을 사용해 PUT으로 데이터 수정이 생길 수 있는 문제를 해결 가능하다.
더 공부할 블로그