다음과 같이 정의 된 네 가지 수준의 데이터 구조가 있습니다.다중 레벨 ConcurrentDictionary는 여전히 스레드로부터 안전한가요?
Dictionary<Type1, Dictionary<Type2, Dictionary<Type3, List<Type4>>>>
모든 것은 스레드 안전성을 유지하는 클래스로 캡슐화됩니다. 현재는 데이터를 읽거나 조작하는 동안 전체 컬렉션을 잠급니다 (읽기는 글쓰기보다 일반적인 순서대로 이루어집니다).
Dictionary
를 ConcurrentDictionary
로 교체하고 List
를 ConcurrentBag
(해당 항목을 주문할 필요가 없음)로 교체하려고 생각했습니다.
이렇게하면 잠금을 제거하고 동시 수집이 작업을 올바르게 수행 할 수 있습니까?
동시 수집 *은 작업을 올바르게 수행하지만 데이터 구조가 미친 것처럼 보입니다! – LukeH
'ConcurrentDictionary, TValue>'을 원하지 않습니까? –
CodesInChaos
@CodeInChaos Mania의 답변에 대한 내 의견보기. –