티스토리 뷰
동시성(concurrency)이란
단일 cpu에서 동시에 여러 작업을 하는 것처럼 보이게 만드는 것
즉 싱글 코어에서 멀티 쓰레드를 동작시키는 방식이다.
HashMap은 이런 동시성 문제가 있어 멀티 쓰레드 어플리케이션 환경에서는 ConcurrentHashMap을 더 선호한다고 한다.
이는 내부적으로 동기화를 하느냐의 차이가 있기 때문이다. 그렇다고 해서 ConcurrentHashMap은 추가 및 삭제와 같은 작업만 될뿐 읽기 작업은 동기화되지 않기때문에 모든 작업이 동기화되는 것은 아니다.
위의 표에서 볼 수 있듯이 속도는 HashMap이 빠르기 때문에 무조건적으로 ConcurrentHashMap이 좋다고 보기도 힘들다.
정리하자면
멀티 쓰레드 환경에서는 ConcurrentHashMap
단일 쓰레드에서는 HashMap을 상황에 따라 사용하면 된다.
'Computer Science > JAVA' 카테고리의 다른 글
스트림이란? (0) | 2023.02.22 |
---|