강의

멘토링

로드맵

Inflearn Community Q&A

one16's profile image
one16

asked

[C# and Unity MMORPG Game Development Series] Part4: Game Server

ReaderWriterLock implementation practice

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

Written on

·

267

0

a스레드에서 ReadLock 사용하고

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

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

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

C#unity네트워크

Answer 2

0

Rookiss님의 프로필 이미지
Rookiss
Instructor

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

0

one16님의 프로필 이미지
one16
Questioner

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

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

one16's profile image
one16

asked

Ask a question