다중 스레드 환경에서 동시 사전 dict<string, list<CustomObjects>>
을 사용하고 있습니다.여러 스레드가 동시 사전에서 다른 요소를 동시에 액세스하고 수정하는 중
여러 스레드가 고유 한 키로 항목을 검색하고 수정하기 위해 동일한 사전에 액세스하고 있습니다. 각 스레드가 액세스하고 고유 한 키에서만 요소를 수정하는 사전에 액세스하는 다중 스레드가 있음에도 불구하고 말합니다.
언제든지 둘 이상의 스레드가 동일한 키 위치에서 요소에 액세스하고 수정하려고하는 상황이 발생하지 않습니다.
지금 내 질문에이 경우에도 내부 잠금이 발생합니까? 또는 다른 스레드가 동일한 사전에 다른 요소를 동시에 액세스하고 있으므로 내부 잠금 또는 동시성 메커니즘이 실행되지 않습니다.
하나 이상의 스레드가 동일한 키 위치에서 요소를 수정하려고하면 기본적으로 잠금이 실행되고 동시성이 보장됩니다. 그러나 다른 스레드가 사전 내의 다른 항목에 액세스하는 경우 내부적으로 잠금없이 수행됩니까?
"동시 사전"이라고 할 때,'ConcurrentDictionary'를 의미합니까? 그렇다면이 유형이 내부적으로 어떻게 구현되는지에 대한 질문입니까? 나는 평행 업데이트가 안전하다는 보장을 넘어 실제 구현 세부 사항을 보장하지 않으므로 형식이 명시 적 잠금없이이 보증을 관리 할 수 있다면 ... ** 정확히 당신의 질문은 무엇입니까? ** –
[ 클래스 설명서의 비고 부분] (https://msdn.microsoft.com/en-us/library/dd287191(v=vs.110).aspx # 설명) 사전에 대한 수정 및 쓰기 작업의 경우 ConcurrentDictionary는 세밀한 잠금을 사용하여 스레드 안전을 보장합니다. (사전 읽기 작업은 잠금이 해제 된 방식으로 수행됩니다.) ' –
문서 읽기 ........... –