-
카테고리
-
세부 분야
게임 프로그래밍
-
해결 여부
미해결
WriteLock이 Empty_Flag일때만 가능하다면...
24.05.10 22:16 작성 조회수 43
0
a스레드에서 ReadLock 사용하고
b스레드에서 WriteLock을 사용하면 대기가 되는데(Empty_Flag가 아니니깐)
ReadLock은 Write_Mask만 없으면 계속 들어올 수 있으니
끝임없이 ReadLock이 발생된다면 대기 중인 b스레드는 언제 WriteLock이 진행되나요?
답변을 작성해보세요.
0
Rookiss
지식공유자2024.05.11
그 정도로 극단적으로 끊임없이 하는 경우는
사실상 배제해야 합니다. Read는 아주 짧게 값만 읽는 것이 목표이고
그 이상 시간을 잡는다면 그놈이 범인입니다(?)
0
오민성
질문자2024.05.10
질문하고 보니 약간 이상하게 작성했는데 ReadCount가 1 이상이면 다른 쓰레드가 WriteLock하면 대기 상태이고, ReadLock을 했던 쓰레드들이 ReadUnlock이 다 되어야 ReadCount가 0이 되서 EMPTY_FLAG가 될 수 있고 그때 대기 중인 WriteLock이 진행되는다고 생각하는 데,
그럼 다른 쓰레드가 끝임없이 ReadLock을 사용해서 ReadCount가 0이 되지 않으면 어떻게 되는 지 궁금합니다.
답변 2