IT 개발/개념 정리
2026. 1. 8. 18:42
JAVA 면접 질문 공부
ConcurrentHashMap
모든 operation은 thread-safe하지만 데이터를 get할 때는 필수조건으로 lock을 걸지 않는다. 이와 달리 HashMap은 멀티스레드 환경에서 안전하지 않아 동시성 문제가 발생할 수 있다.
ConcurrentHashMap의 put 메소드를 보면 multi-thread 환경에서 어떻게 동시성을 보장하는지 알 수 있다. ConcurrentHashMap이 empty일 때는 lock을 잡지않는다.(CAS(Compare and Swap)) 특히 map 전체가 아닌 node단위로 lock을 건다.
이 부분이 포인트인데 node 단위로 걸기 때문에 lock이 걸리지 않은 node를 조회, CUD 시 성능이 저하되지 않는다.


반응형
'IT 개발 > 개념 정리' 카테고리의 다른 글
| JAVA Stream API에 대한 정리 (0) | 2026.01.09 |
|---|---|
| DB 개념 및 면접 내용 정리 (0) | 2026.01.08 |
| CSVParser, JSONParser 차이 및 학습 (0) | 2026.01.08 |
| 어려운 네트워크에 대해 공부해보자 (0) | 2025.02.04 |
| ngrinder를 이용한 성능 테스트 (0) | 2024.09.18 |