
[게임서버] 스핀락(Spinlock)이란?
·
공부/게임 서버
영화를 보다가 화장실에 가고 싶은데 다른 사람이 변기를 차지하고 안에서 잠금장치를 걸었다면 우리는 고민한다. 1. 사람이 나올 때까지 그 앞에서 계속 기다릴지 2. 잠시 자리로 돌아갔다가 나중에 다시 와서 다시 문을 두드릴지 3. 영화관 직원에게 부탁하여 화장실에 자리가 나면 나에게 알려달라고 할지 첫 번째 상황이 바로 스핀락(Spinlock)이다. 스핀락이란 잠금을 원하는 스레드에 잠금을 사용할 수 있을 때까지 무한 루프를 돌면서 확인·대기하는 것을 말한다. C#으로 작성된 내용입니다. using System; namespace ServerStudy { class SpinLock { volatile int _locked = 0; // volatile 변수는 최적화에서 제외되고 항상 메모리에 접근함 pu..