서버에서 타이머 콜백

게임 클라이언트처럼, 게임 서버 또한 일정 시간마다 뭔가를 처리하고자 할 수 있습니다. 이러한 경우 아래와 같은 단순한 루프를 가지는 방법이 있습니다.

while(1)
{
do_something(); // 월드 천이 연산을 시행
Sleep(1); // 일정 시간 대기
}

Proud.CTimerThread나 Proud.CTimerQueue를 이용해서 위 루프를 별도 스레드에서 하게 만드는 방법도 있습니다.

그러나, 서버의 thread pool에서 직접 사용자가 정의한 타이머 함수가 호출되게 하는 방법을 추천합니다. 예를 들어 서버가 1개의 thread만을 가질 경우 타이머 함수와 이벤트 콜백이 같은 스레드이면 critical section 접근 횟수를 절약할 수도 있기 때문입니다. ProudNet은 이를 위한 기능을 내장하고 있습니다.