작성
·
266
답변 1
1
어떤 부분을 여쭤보시는지가 살짝 애매한데요.
일단 기본적으로 C#에서 lock (obj) { } 을 하면
{} 범위 내에 락을 걸고, 범위 밖으로 빠져 나오면 락을 풀어줍니다.
그 부분을 수동으로 2 단계로 나눈게 writeLock, writeUnlock입니다.
lock이 필요한 이유는, 멀티쓰레드 환경에서 쓰레드 사이에 경합이 붙어서
공유 데이터를 동시에 읽거나 쓰는 상황이 발생할 수 있기 때문입니다.
이러면 엉뚱한 데이터를 읽거나, 최악의 경우에는 크래시가 날 수도 있습니다.