글 작성자: Sowhat_93

EnterCriticalSection 시, 유저모드와 커널모드간 전환이 일어난다.

그런데 만약, 이미 다른 스레드가 공유자원을 가지고 있다는 판단에

커널모드로 전환되는 와중에, 공유자원이 접근 가능하게 되었다면 

이는 큰 CPU 낭비로 이어질 수 있다. 

때문에, CriticalSection 사용시 일정카운트동안은 스핀락처럼

공유자원 획득을 시도하도록 설정 할 수 있다.

	CRITICAL_SECTION CS;
    InitializeCriticalSection(&CS);
    SetCriticalSectionSpinCount(&CS, 4000);
    //4000 번 공유자원 획득을 시도하고, 이후에도 실패한다면, 커널모드로 제어를 전환한다.(블로킹 된다.)