1. Hashtable 클래스
- 메소드 전체에 synchrocized 키워드가 존재한다.
- Multi-Thread 환경에서 동시 작업을 하게 되면 Lock이 걸리기 때문에 thread-safe 하지만 느리다는 단점이 있다.
- 최근에는 잘 사용하지 않음.
2. HashMap 클래스
- synchrocized가 존재하지 않기 때문에 Map을 구현한 클래스중에 가장 성능적으로 우수하다.
- Multi-Thread 환경에서 사용할 수 없다.
3. ConcurrentHashMap 클래스
- Hashtable 클래스의 단점을 보완하면서 Multi-thread 환경에서 사용할 수 있도록 나온 클래스
- get 메서드에는 synchrocized가 없고 , put 메서드에는 존재
- 읽기 작업에는 여러 쓰레드가 동시에 읽을 수 있지만, 쓰기 작업에는 특정 세그먼트 or 버킷에 대한 Lock을 사용한다
- 동시작업 때문에 실무에서 많이 사용하는 클래스