[게임서버] Context Switching이란? (Thread.Sleep(1), Thread.Sleep(0), Thread.Yield())
·
공부/게임 서버
영화를 보다가 화장실에 가고 싶은데 다른 사람이 변기를 차지하고 안에서 잠금장치를 걸었다면 우리는 고민한다. 1. 사람이 나올 때까지 그 앞에서 계속 기다릴지 2. 잠시 자리로 돌아갔다가 나중에 다시 와서 다시 문을 두드릴지 3. 영화관 직원에게 부탁하여 화장실에 자리가 나면 나에게 알려달라고 할지 두 번째 상황이 바로 Context Switching이다. Context Switching이란 작업을 진행 중인 스레드가 자신의 작업이 완료되지 않은 상황에서 자신의 작업을 잠시 저장하고 다른 스레드에게 CPU 점유권을 양보하는 작업을 말한다. C#으로 작성된 내용입니다. using System; namespace ServerStudy { class Lock { volatile int _locked = 0; ..