2010-03-08 8 views
3

다중 스레드 응용 프로그램에서. 정보를 읽기 위해 컬렉션을 반복하는 기능이 있습니다. 또한 같은 컬렉션을 수정하는 많은 기능이 있습니다.다중 스레드 읽기 및 쓰기 분리

나는 모든 읽기와 쓰기를 분리하는 방법을 찾고 있습니다. 읽기가 진행되는 동안 쓰기가 수행되기를 원하지 않습니다. 나는 컬렉션 객체에서 SyncLock을 사용하려고 생각 했었지만, 병렬로 작업하려고하는 다중 읽기를 차단할 것이다.

답변

3

ReaderWriterLockSlim을 고려하셨습니까? 그래도 check that using it is faster than a simple Monitor lock 할 수 있습니다. 이전 ReaderWriterLock을 고려하지 마십시오. 여기 제프리 리히터 그것에 대해 말해야하는 내용은 다음과 같습니다

는 Microsoft® .NET Framework 클래스 라이브러리는 다중 리더/단일 작가를 취득 할 수있는하여 System.Threading 네임 스페이스에서 ReaderWriterLock 클래스를 포함 의미론. 이와 같은 클래스가 존재하는 것이 좋지만, 구현에는 몇 가지 문제가 있으며 을 사용하는 것이 좋습니다. 사용하지 않는 것이 좋습니다.