강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

no6614163님의 프로필 이미지
no6614163

작성한 질문수

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버

ReaderWriterLock 구현 연습

WriteUnlock 질문이 있습니다

작성

·

222

0

24분 10초경에 

int lockCount = --_writeCount; << 를 두개의 쓰레드가

동시에 unlock하게 되어서 lockCount 값이 0을 갖지 못하고,

_flag가 EMPTY_FLAG로 영영 못바뀌는 경우는 없는걸까요??

답변 1

1

Rookiss님의 프로필 이미지
Rookiss
지식공유자

WRITE_LOCK은 상호배타적이라, 동시에 2개의 쓰레드가 writeLock을 잡을 수 없습니다.
따라서 WriteUnlock도 동시에 2개의 쓰레드가 실행할 수 없습니다.

no6614163님의 프로필 이미지
no6614163
질문자

아 Spinlock을 써서 상호배타적이게 만들어 놓고도 재귀적락을 허용한다는 부분에서 혼동했네요.

재귀적 락을 허용한다는게 동일 쓰레드에서 writeLock을 허용한다는 의미였는데 놓쳤습니다.

답변감사합니다.

Rookiss님의 프로필 이미지
Rookiss
지식공유자

어려운 부분인데 잘 이해하셨네요 :)

no6614163님의 프로필 이미지
no6614163

작성한 질문수

질문하기