• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    미해결

WriteLock이 Empty_Flag일때만 가능하다면...

24.05.10 22:16 작성 조회수 43

0

a스레드에서 ReadLock 사용하고

b스레드에서 WriteLock을 사용하면 대기가 되는데(Empty_Flag가 아니니깐)

ReadLock은 Write_Mask만 없으면 계속 들어올 수 있으니

끝임없이 ReadLock이 발생된다면 대기 중인 b스레드는 언제 WriteLock이 진행되나요?

답변 2

·

답변을 작성해보세요.

0

그 정도로 극단적으로 끊임없이 하는 경우는
사실상 배제해야 합니다. Read는 아주 짧게 값만 읽는 것이 목표이고
그 이상 시간을 잡는다면 그놈이 범인입니다(?)

0

오민성님의 프로필

오민성

질문자

2024.05.10

질문하고 보니 약간 이상하게 작성했는데 ReadCount가 1 이상이면 다른 쓰레드가 WriteLock하면 대기 상태이고, ReadLock을 했던 쓰레드들이 ReadUnlock이 다 되어야 ReadCount가 0이 되서 EMPTY_FLAG가 될 수 있고 그때 대기 중인 WriteLock이 진행되는다고 생각하는 데,

그럼 다른 쓰레드가 끝임없이 ReadLock을 사용해서 ReadCount가 0이 되지 않으면 어떻게 되는 지 궁금합니다.