ConcurrentHashMap 원자 연산

키 하나의 복합 의미를 직접 제공하는 메서드가 검사와 행동의 틈을 없앤다.

키별 상태

putIfAbsent

값이 없을 때만 새 값을 넣는다.

compute

기존 값과 키로 새 상태를 계산한다.

merge

초기값 삽입과 기존값 결합을 한 계약으로 묶는다.

remove pair

키와 값이 모두 맞을 때만 항목을 제거한다.

핵심: 계산 함수에는 중복 실행되어도 안전한 순수 변환을 넣는다.