클래스 HashMap vs ConcurrentHashMap 차이점

테크블로거·2021년 11월 19일
0

TroubleShooting

목록 보기
2/2

현상

동시 접속의 Request가 있을 경우, 입력 파라미터, 디버그 파라미터 등 변수 처리에 대한 일관성 깨짐.

원인

어플리케이션 로직에서 사용되는 클래스인 HashMap에서 동시 접속 처리시 변수 중복이 발생
(여기서 "동시 접속"이라함은, 동일 서버로부터 0.001 sec 로 인입된 2개이상의 Request를 의미함.)

해결 방안

어플리케이션 로직에서 사용되는 HashMap 클래스를 ConcurrentHashMap 클래스로 보완함.

ConcurrentHashMap 특징

입력 파라미터를 put할 때 다른쓰레드에서 접근 못하도록 lock 기능 제공
(내부 메소드 자체적으로 synchronized 사용)
HashTable 클래스와 유사하나 차이점으로는 ConcurrentHashMap 클래스는
내부영역을 쪼개서 관리하고 있기 때문에 다중 쓰레드를 동시에 처리할 수 있어
HashTable 클래스보다 처리속도가 빠르다는 부분입니다.

profile
Enjoy automating tasks, rather than repeating them! DRY(Don't Repeat Yourself)

0개의 댓글