작성한 질문수
[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
ReaderWriterLock
작성
·
168
0
안녕하세요. 좋은 강의 찍어주셔서 감사합니다.
이번 강의 4:30초에서 락은 "근성, 양보, 갑질" 세 가지로 사용할 수 있다고 하셨습니다.
그렇다면 다음과 같이 일반 lock을 사용한다면,
static object _lock = new object();
static void Main(string[] args)
{
lock(_lock)
}
이것은 한번만 자물쇠 획득을 시도하고 자물쇠를 획득하지 못하면, Thread.Yield()를 하는 MAX_COUNT가 1인 스핀락과 같은 것 인가요?
답변 1
내부 구현에 대해 정확하게 알 수는 없지만구글에서 C# lock과 관련해 조사해보면내부적으로 Monitor 클래스를 사용하고,스픽락(user mode)과 이벤트(kernel mode)를 적절히 섞어 쓴다고 본 것 같네요.