티스토리 뷰

Computer Science/JAVA

HashMap의 동시성 문제

duswnsxnxn 2023. 1. 3. 20:12

동시성(concurrency)이란

단일 cpu에서 동시에 여러 작업을 하는 것처럼 보이게 만드는 것 

즉 싱글 코어에서 멀티 쓰레드를 동작시키는 방식이다.

 

HashMap은 이런 동시성 문제가 있어 멀티 쓰레드 어플리케이션 환경에서는 ConcurrentHashMap을 더 선호한다고 한다.

이는 내부적으로 동기화를 하느냐의 차이가 있기 때문이다. 그렇다고 해서 ConcurrentHashMap은 추가 및 삭제와 같은 작업만 될뿐 읽기 작업은 동기화되지 않기때문에 모든 작업이 동기화되는 것은 아니다.

출처 :https://javaconceptoftheday.com/hashmap-vs-concurrenthashmap-in-java/

위의 표에서 볼 수 있듯이 속도는 HashMap이 빠르기 때문에 무조건적으로 ConcurrentHashMap이 좋다고 보기도 힘들다.

정리하자면 

멀티 쓰레드 환경에서는 ConcurrentHashMap
단일 쓰레드에서는 HashMap을 상황에 따라 사용하면 된다.

'Computer Science > JAVA' 카테고리의 다른 글

스트림이란?  (0) 2023.02.22
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함