인프런 커뮤니티 질문&답변
작성자 없음
작성자 정보가 삭제된 글입니다.
ReaderWriterLock 구현 연습 파트 질문입니다!
해결된 질문
작성
·
350
6
ReadLock() 작성 중에 조건이
아무도 WriteLock을 획득하고 있지 않으면 ReadCount를 1 늘린다 라서
if ( (_flag & WRITE_MASK) == 0 ) 이 코드는 이해하겠는데
Interlocked를 사용하면서 이 부분이 사라지고
int expected = (_flag & READ_MASK);
if (Interlocked.CompareExchange(ref _flag, expected + 1, expected) == expected)
return;
이렇게 작성이 되었는데요.
이러면 WriteLock 체크를 무시하는 것이 아닌가요?
코드로만 보면 WriteLock 영역은 모두 0으로 날려버리는 것이니 WriteLock이 있던 없던 그냥 Read 하겠다라고 이해되어서요.
퀴즈
멀티쓰레딩 개론에서 프로그램(프로세스)에 비유된 것은 무엇일까요?
CPU 코어
쓰레드
운영체제
레스토랑





