본문 바로가기
Java

java #2 [HashMap, ConcurrentHashMap]

by Lee David 2020. 6. 26.
반응형

쓰레드에 더 유용하게 사용하는 자료구조

Dao 객체를 만들어서 사용하는게 더 나은 방법이 될 수도 있겠지만 자료구조를 잘 활용하는 것이 때로는 더 적은 리소스로 더 나은 성능을 만들수 있다고 믿습니다.

 

그중에서도 HashMap과 ConcurrentHashMap은 이름이 비슷하지만 사용시에 확연히 다른 모습을 보여줍니다.

 

HashMap의 특징을 먼저 보겠습니다.

  • null을 key 값으로 허용합니다.
  • 중복을 허용하지 않습니다.
  • 순서나 동기화를 보장하지 않습니다.

ConcurrentHashMap의 특징을 보겠습니다.

  • null을 허용하지 않습니다.
  • 중복을 허용하지 않습니다.
  • 순서는 보장하지 않지만 동기성은 보장합니다.

위와 같이 보았을때 스레드 상에서 ConcurrentHashMap을 사용하면 더 좋은 효과를 거둘수 있는것처럼 보이지만 사실 ConcurrentHashMap은 데이터를 저장하고 읽을때 데이터에 대한 synchrnoized가 적용되기 때문에 약간의 성능 저하를 유발할 수 있습니다.

 

이 처럼 java 버전에 따라 여러가지 업데이트와 향상된 기능등을 보여주며 앞으로 java가 kotlin이 더 이상 따라오지 못하도록 어떠한 조취를 취할지 기대가 됩니다.

반응형

'Java' 카테고리의 다른 글

[자료구조] Priority Queue는 뭔가요?  (0) 2022.08.18
java #4 [Queue, Dequeue]  (0) 2020.07.08
java #3 [ArrayList, LinkedList, SynchronizedList]  (0) 2020.07.06
Java #3 [InputStream]  (0) 2020.06.29
java #1 [concat, +, StringBuffer, StringBuilder]  (0) 2020.06.23