반응형
쓰레드에 더 유용하게 사용하는 자료구조
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 |