-
23-08-2019 - |
문제
작업을 읽기 작업 (예 : 조회) 및 쓰기 작업 (예 : 삽입, 제거)으로 분류 할 수있는 데이터 구조가 있습니다. 이러한 작업은 다음과 같이 동기화되어야합니다.
- 쓰기 작업이 실행되는 동안 (동일한 스레드에 있지 않는 한) 읽기 작업은 실행할 수 없지만 다른 읽기 작업과 관련하여 읽기 작업을 동시에 실행할 수 있습니다.
- 읽기 또는 쓰기 작업이 실행되는 동안 (동일한 스레드에 있지 않으면) 쓰기 작업은 실행할 수 없습니다.
이러한 종류의 동기화를 어떻게 구현할 수 있습니까?
플랫폼은 Win-API이므로 API의 동기화 객체 및 인터 로크 함수가 기본 빌딩 블록입니다.
해결책
Microsoft가 독자/작가 잠금 장치의 권장 구현이 여기에 있습니다 (헤더 "Reader/Writer Locks"에 약간 스크롤해야합니다) :
http://msdn.microsoft.com/en-us/library/ms810427.aspx
참고로, 같은 질문이 있지만 .NET의 사치를 가진 사람들을 위해 :
http://msdn.microsoft.com/en-us/library/system.threading.readerwriterlock.aspx
제휴하지 않습니다 StackOverflow