C#
-
[C#] SpinLock 구현하기C# 2024. 1. 14. 13:21
인프런 Rookiss 님의 [C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버 를 정리, 분석한 글 입니다. 스핀락은 이름에서 유추할 수 있듯이 뱅글뱅글 돌면서 잠금을 거는 것이다. 잠금이 필요한 상황은 공유 자원에 대해 동시적인 요청이 발생할 수 있는 상황에서 자원 정합성을 보장해야하는 경우이다. 간단한 예로 상품 재고를 감소 시키는 상황이 동시에 여러 번 발생할 경우인데, 자세한건 아래의 글을 참고하자. //TODO Lock 이란? 락을 사용해 동기화를 한다면 아래와 같이 표현할 수 있다. 1. 공유되는 자원을 변경하는 공간이 있다. 2. 이 공간은 열쇠를 얻은 한 사람만 들어갈 수 있다. 3. 한 사람이 열쇠로 문을 열고 뭔가를 한 뒤 문을 닫고 나온다. 4. 다음 사람..