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

loheldi412님의 프로필 이미지
loheldi412

작성한 질문수

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

ReaderWriterLock 구현 연습

writeLock, writeUnlock, readLock, readUnlock 관련 질문입니다

작성

·

266

0

 
수업 너무 잘 듣고 있어요! 이 부분은 이해가 잘 안갈거라고 말씀해주셔서 가볍게 보고 있는데도 조금이나마 이해를 해보자 몇 자 남겨봅니다.
 
0. writeLock, writeUnlock, readLock, readUnlock 이것들의 목적은 무엇일까요? 어떤 상황에서 사용할 수 있을까요?
 
1. 이해를 돕기 위한 다른 방법이 더있을까요?

답변 1

1

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

어떤 부분을 여쭤보시는지가 살짝 애매한데요.

일단 기본적으로 C#에서 lock (obj) { } 을 하면 
{} 범위 내에 락을 걸고, 범위 밖으로 빠져 나오면 락을 풀어줍니다.
그 부분을 수동으로 2 단계로 나눈게 writeLock, writeUnlock입니다.

lock이 필요한 이유는, 멀티쓰레드 환경에서 쓰레드 사이에 경합이 붙어서
공유 데이터를 동시에 읽거나 쓰는 상황이 발생할 수 있기 때문입니다.
이러면 엉뚱한 데이터를 읽거나, 최악의 경우에는 크래시가 날 수도 있습니다.

loheldi412님의 프로필 이미지
loheldi412

작성한 질문수

질문하기