• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    미해결

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

21.11.17 23:09 작성 조회수 210

0

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

답변 1

답변을 작성해보세요.

1

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

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

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