이때는 워커 스레드를 1개로 설정하고 CPU 개수만큼 서버를 구동할 것을 권장합니다. NetServer를 싱글스레드로 구동할 때는 이렇게 하면 됩니다.

    void main()
    {
      ...
      CThreadPool* p = CThreadPool::Create(..., 0); // ➊
     
      CStartServerParameter param;
      ...
      param.m_externalNetWorkerThreadPool = p; // ➋
      param.m_externalUserWorkerThreadPool = p;
      netServer->Start(param);
     
      while (true)
      {
          ...
          // ➌ 최대 10밀리초까지 기다리면서,
          // thread pool에 쌓인 이벤트를 처리한다.
          p->Process(10);
      }
    }

    스레드가 전혀 없는 스레드 풀 객체를 생성합니다.

    NetServer가 이 스레드 풀 객체를 사용하도록 설정합니다.

    수동으로 스레드 풀을 숨쉬게(?) 하는 함수를 지속적으로 호출합니다.

    신간 소식 구독하기
    뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.