HahsMap
-동기화보장안됨
-null한번 허용
동기화 처리를 하지 않기 때문에 데이터를 탐색하는 속도가 빠르다. 결국 HashTable과 ConcurrentHashMap보다 데이터를 찾는 속도는 빠르지만, 신뢰성과 안정성이 떨어진다.
Hash Table, ConcurrentHashMap
동기화 보장
null 허용x
성능은 ConcurrentHashMap이 더 우수
Hash Table, ConcurrentHashMap 의 차이점
Hash Table
메소드전체에 synchronized 키워드가 붙어 있다.
해당 키워드는 메소드 전체에 락을 건다.
그래서 멀티 쓰레드 환경에서도 데이터의 무결성을 보장한다.
안전하지만 성능이 느려진다.
ConcurrentHashMap
ConcurrentHashMap은 메소드 전체가 아닌 부분적으로 락을 걸어 데이터를 다루는 속도가 빠르다.
추가 및 삭제와 같은 수정 작업만 동기화가 된다. 읽기 작업은 동기화되지 않는다.
내부구현을 보면 중간에 synchronized 가 걸려있다.
멀티쓰레드 환경이라면 -ConcurrentHashMap, 싱글쓰레드 - HashMap