작성한 질문수
[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
ReaderWriterLock 구현 연습
작성
·
222
0
24분 10초경에
int lockCount = --_writeCount; << 를 두개의 쓰레드가
동시에 unlock하게 되어서 lockCount 값이 0을 갖지 못하고,
_flag가 EMPTY_FLAG로 영영 못바뀌는 경우는 없는걸까요??
답변 1
1
WRITE_LOCK은 상호배타적이라, 동시에 2개의 쓰레드가 writeLock을 잡을 수 없습니다.따라서 WriteUnlock도 동시에 2개의 쓰레드가 실행할 수 없습니다.
아 Spinlock을 써서 상호배타적이게 만들어 놓고도 재귀적락을 허용한다는 부분에서 혼동했네요.
재귀적 락을 허용한다는게 동일 쓰레드에서 writeLock을 허용한다는 의미였는데 놓쳤습니다.
답변감사합니다.
어려운 부분인데 잘 이해하셨네요 :)
아 Spinlock을 써서 상호배타적이게 만들어 놓고도 재귀적락을 허용한다는 부분에서 혼동했네요.
재귀적 락을 허용한다는게 동일 쓰레드에서 writeLock을 허용한다는 의미였는데 놓쳤습니다.
답변감사합니다.