2017-04-07 3 views
1

저는 java.until.concurrent의 세계에 신인입니다. ConcurrentHashMap을 코드에 적용하기 전에 통찰력이 필요합니다. 이론적으로 맵은 내부적으로 16 메타 메타로 세그먼트 화됩니다 (사용자 정의 할 수 있지만 기본 세그먼트 화). 처리하는 동안 각기 다른 스레드를 처리합니다. 이제지도에있는 콘텐츠를 조작하려고하는 두 개 이상의 스레드가 있습니다 ... 그럼 어떻게 동기화가 다른 스레드에서 읽히는 동안 발생합니까?ConcurrentHashMap의 동시 수정

+0

버킷 당 내부 링크 된 목록은 반복자가 변경 사항을 볼 수 있는지 여부를 보장하지는 않지만 최소한 항상 일관된보기를 볼 수있는 스레드로부터 안전한 방법으로 처리됩니다. –

답변

2

동기화는 개발자에게 투명합니다. ConcurrentMap 인터페이스는 java.util.Map을 상속하므로. HashMap과 같이 ConcurrentHashMap에서 get/put 메소드를 호출 할 수 있습니다. JVM은 백그라운드에서 동기화를 투명하게 처리합니다. 당신은 그것에 대해 신경 쓸 필요가 없습니다.