이때 멀티스레드를 이용하면 두 가지 문제를 모두 해결할 수 있습니다. 다음 코드를 봅시다.

    bool isStillLoading; // 전역 변수
     
    Thread1
    {
      isStillLoading = true;
      while (isStillLoading)
      {
          FrameMove();
          Render();
      }
    }
     
    Thread2
    {
      LoadScene();
      LoadModel();
      LoadTexture();
      LoadAnimation();
      LoadSound();
     
      isStillLoading = false;
    }

    Thread1에서는 게임 루프를 돕니다. 즉, 렌더링을 지속적으로 수행합니다.

    Thread2에서는 게임에 필요한 데이터를 디스크에서 로딩합니다. 그리고 로딩이 끝나면 특정 변수를 변경합니다. Thread1에서는 이 변수가 변경될 때까지 로딩 화면을 반복해서 렌더링합니다.

    이렇게 하면 동시에 두 가지 일을 하기 때문에 로딩이 진행되는 동안 제법 부드러운 애니메이션을 선사할 수 있습니다.

    멀티스레드 프로그래밍이 유용한 다음 케이스를 봅시다.

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