[C언어/C++] Sleep(딜레이) 함수 사용법 (잠시 멈춤)

컴퓨터의 연산속도는 너무나도 빨라서 아무리 많은 연산을 하더라도 실제 사용자가 보기에는 찰나의 순간에 지나가버립니다. 이런 CPU의 연산을 잠시 지연시키고 싶다면 windows의 Sleep함수를 사용하면 됩니다. 이렇게 Sleep 함수를 활용하여 CPU의 연산을 잠시 지연시키게 되면 마치 프로그램이 천천히 실행되는 효과를 줄 수 있게됩니다. Sleep함수는 밀리초 단위의 간격으로 설정이 가능하며 여기서 밀리초는 1/1000초입니다. 

 

딜레이(Sleep) 함수 사용법 (잠시 멈춤)

#include <windows.h> // Sleep함수가 포함된 헤더
Sleep(밀리초); // Sleep함수 호출

<windows.h> 헤더파일의 Sleep() 함수를 사용하면 명령어의 실행시간을 지연시킬 수 있습니다. 1초를 지연시키고 싶다면 인자값으로 1000을 넣으시면 됩니다.

 

사용 예제

#include <stdio.h>
#include <windows.h>

void main()
{
    for (;;) {
        printf("Hello Wolrd!!\n");
        Sleep(1000); //1초 Delay
    }
}

Sleep 사용 예제

위의 예제처럼 프로그램 실행속도를 인위적으로 늦출 수 있습니다.

 

Sleep 함수의 문제점

앞에서도 잠깐 언급한 내용이지만 C언어 / C++과 같은 프로그래밍 언어로는 프로그램의 속도를 인위적으로 늦출 수 없습니다. 그렇기에 OS의 힘을 빌려야 합니다. OS와 연관된 함수들은 <windows.h>헤더에 포함되어 있고 이중 Sleep함수는 CPU의 연산 속도를 늦춰서 프로그램이 천천히 작동되는 효과를 줄 수 있는것입니다. 즉 소프트웨어 시간 지연 함수(Sleep)은 일정 시간동안 CPU의 MCU에게 엉뚱한 작업을 시킴으로써 MCU의 동작을 정지시키는 함수라고 정의할 수 있습니다. 그렇기에 Sleep함수를 너무 남발하면 CPU에 많은 부하가 걸리기에 전체적인 컴퓨터의 성능이 떨어지게 됩니다.

댓글

Designed by JB FACTORY