c sleep how use sleep function c programs
이 C ++ Sleep 자습서에서는 C ++의 Sleep 함수에 대해 설명하고 스레드를 절전 모드로 전환하는 방법을 알아 봅니다. 우리는 또한 다른 기능에 대해서도 배울 것입니다. usleep :
프로세스, 작업 또는 스레드 인 모든 컴퓨터 프로그램은 특정 시간 동안 '휴면'하거나 비활성 상태가 될 수 있습니다. 이 기간 동안 실행이 일시 중지됩니다. 절전 시간 간격이 만료되거나 신호 또는 인터럽트로 인해 실행이 다시 시작되면 실행이 다시 시작됩니다.
프로그램 (작업, 프로세스 또는 스레드)을 절전 모드로 전환하기 위해 절전 시스템 호출을 사용합니다. 일반적인 절전 시스템 호출은 프로그램이 절전 또는 비활성 상태를 유지하는 데 필요한 시간을 나타내는 매개 변수로 시간을 사용합니다.
=> 여기에서 전체 C ++ 교육 시리즈를 확인하십시오.
또한이 튜토리얼에서 논의 할 usleep () 및 thread :: sleep 함수도 있습니다. 제공되는 시간은 대부분 밀리 초, 마이크로 초 또는 초 단위이며 프로그램을 절전 모드로 전환 할 수있는 다양한 기능이 있는지 여부에 따라 다릅니다.
학습 내용 :
수면 () 기능
C ++ 언어는 자체적으로 절전 기능을 제공하지 않습니다. 그러나 운영 체제의 특정 파일은 unistd.h Linux 및 Windows.h Windows의 경우이 기능을 제공합니다.
Linux 또는 UNIX 운영 체제를 사용할 때 프로그램에 'unistd.h'헤더 파일을 포함해야합니다. 자다 () 함수.
Windows 운영 체제를 사용하는 동안 절전 () 기능을 사용하려면 'Windows.h'헤더를 포함해야합니다. 따라서 크로스 플랫폼 프로그램을 작성하기 위해 다음과 같은 코드를 사용하여 헤더 중 하나를 사용할 수 있습니다.
#ifdef _WIN32 #include #else #include #endif
수면 기능은 다음과 같습니다.
기능 프로토 타입 :
unsigned sleep (unsigned seconds);
매개 변수 :
초 => 프로그램 실행이 일시 중지되는 시간 (초)
반환 값 :
0 => 요청 된 시간이 경과하여 수면이 돌아 오는 경우.
수면이 신호에 의해 중단 된 경우, 수면하지 않은 양 (지정된 요청 기간에서 실제 경과 시간을 뺀 값)이 반환됩니다.
기술:
sleep () 함수는 호출 된 프로그램 또는 프로세스가 함수 매개 변수에 지정된 시간 (초) 동안 실행을 일시적으로 중단하도록합니다. 요청 된 시간이 경과하거나 신호 또는 인터럽트가 함수에 전달 될 때까지 실행이 중단됩니다.
그러나 시스템이 다른 활동을 예약 한 경우 일시 중지 시간이 더 길어질 수 있습니다.
다음은 두 cout 문 사이에 sleep 함수를 사용하는 C ++ 프로그램입니다.
유튜브 뮤직 비디오 무료 다운로드 소프트웨어
#ifdef _WIN32 #include #else #include #endif #include #include using namespace std; int main() { cout << 'Hello '; cout.flush(); sleep(10); cout << 'World'; cout << endl; return 0; }
산출:
Hello World
위의 프로그램에서는“Hello”를 인쇄 한 후 10 초 동안 절전 명령을 내립니다. 컴파일러는 'Hello'를 인쇄 한 후 10 초 동안 기다린 다음 'World'를 인쇄합니다.
노트 : 독자는 실제로 sleep 명령의 작동을 이해하기 위해이 프로그램을 실행해야합니다.
Usleep () 기능
'unistd.h'헤더는 지정된 시간 동안 프로그램 실행을 중단 할 수있는 또 다른 함수 'usleep ()'을 제공합니다. 작동은 이미 설명한 sleep () 함수와 유사합니다.
기능 프로토 타입 : int usleep (useconds_t useconds);
매개 변수 : useconds => 실행이 일시 중단 된 시간 (마이크로 초)
반환 값 :
0 => Usleep이 성공적으로 돌아 왔습니다.
-1 & errno => 기능이 실패했습니다.
기술:
usleep () 함수는 useconds 마이크로 초 동안 또는 실행을 중단하는 스레드에 신호가 전달 될 때까지 호출 스레드의 실행을 일시 중단합니다.
usleep 함수에 사용되는 타이머 값의 단위는 구현에 따라 다를 수 있습니다. 구현에서 지정한 것보다 더 세분화해야하는 경우 실제 타이머 값은 지원되는 다음 값으로 반올림됩니다.
아래는 usleep () 함수를 보여주는 예제입니다.
#include #include #include using namespace std; int main() { cout << 'Hello '; cout.flush(); usleep(10000); cout << 'World'; cout << endl; return 0; }
산출:
Hello World
위 출력에서 볼 수 있듯이 usleep 함수에 대해 시간주기를 10000 microseconds로 지정하고 sleep 함수를 사용하는 이전 프로그램과 마찬가지로 'Hello World'문자열을 인쇄합니다.
스레드 절전 (sleep_for 및 sleep_until)
C ++ 11은 스레드를 절전 모드로 전환하는 특정 함수를 제공합니다.
두 가지 기능이 있습니다.
Std :: this_thread :: sleep_for
기능 프로토 타입 :
template void sleep_for( const std::chrono::duration& sleep_duration );
매개 변수 : sleep_duration => 수면 시간
반환 값 : 없음
기술: sleep_for () 함수는 헤더에 정의되어 있습니다. sleep_for () 함수는 적어도 지정된 시간, 즉 sleep_duration 동안 현재 스레드의 실행을 차단합니다.
이 기능은 일정 활동이나 리소스 경합 지연으로 인해 지정된 시간보다 더 오래 차단 될 수 있습니다.
sleep_for의 사용법을 보여주는 C ++ 예제는 다음과 같습니다.
#include #include #include using namespace std; int main() { cout << 'Hello I'm waiting....' << endl; this_thread::sleep_for(chrono::milliseconds(20000) ); cout << 'Waited 20000 ms
'; }
산출:
안녕하세요 기다리고 있습니다….
2000ms 대기
위의 프로그램에서 우리는 20000 밀리 초의 수면 시간을 지정했습니다. 이는 스레드가 작업을 다시 시작하기 전에 20000 밀리 초 동안 차단됨을 의미합니다.
Std :: this_thread :: sleep_until
기능 프로토 타입 :
template void sleep_until( const std::chrono::time_point& sleep_time );
매개 변수 : sleep_time => 스레드가 차단 될 때까지의 시간입니다.
반환 값 : 없음
기술: 이 함수는 헤더에 정의되어 있습니다. sleep_until () 함수는 sleep_time이 경과 할 때까지 스레드 실행을 차단합니다. 다른 기능과 마찬가지로이 기능은 일정 활동이나 리소스 경합 지연으로 인해 지정된 시간보다 더 오래 차단 될 수 있습니다.
sleep_until 함수를위한 C ++ 프로그램은 다음과 같습니다.
#include #include #include using namespace std; void current_time_point(chrono::system_clock::time_point timePt) { time_t timeStamp = chrono::system_clock::to_time_t(timePt); cout << std::ctime(&timeStamp) << endl; } void threadFunc() { cout<<'Current Time :: '; current_time_point(chrono::system_clock::now()); chrono::system_clock::time_point timePt = chrono::system_clock::now() + chrono::seconds(60); cout << 'Sleeping Until :: '; current_time_point(timePt); this_thread::sleep_until(timePt); cout<<'Woke up...Current Time :: '; current_time_point(chrono::system_clock::now()); } int main() { std::thread th(&threadFunc); th.join(); return 0; }
산출:
현재 시간 :: Thu Sep 19 12:52:01 2019
잠자는 종료 :: Thu Sep 19 12:53:01 2019
Woke up… 현재 시간 :: Thu Sep 19 12:53:01 2019
이 프로그램에서는 스레드를 60 초, 즉 1 분 동안 휴면 상태로 만듭니다. 1 분이 완료되면 스레드가 깨어나 현재 시간을 인쇄합니다.
자주 묻는 질문
Q # 1) C ++에서 sleep ()은 무엇을합니까?
대답: Sleep () 기능은 지정된 시간 동안 프로그램 실행을 일시 중지합니다. 이 기간은 sleep () 함수에 대한 인수로 지정됩니다.
Q # 2) C ++에서 sleep 용 헤더 파일은 무엇입니까?
대답: 절전 헤더는 LINUX / UNIX 운영 체제의 경우 'unistd.h'이고 Windows 운영 체제의 경우 'Windows.h'입니다. 'sleep_for'및 'sleep_until'함수를 사용하는 thread sleep의 경우 헤더가 사용됩니다.
Q # 3) #include Unistd H의 용도는 무엇입니까?
대답: 헤더‘Unistd.h’는 프로그램 실행을 중단하기위한 sleep () 함수를 정의하는 헤더입니다.
결론
sleep () 함수에 대한이 튜토리얼에서는 sleep 및 thread sleep 함수 인 sleep_for 및 sleep_until과 동일한 sleep 함수 및 usleep () 함수에 대해 논의했습니다. 절전 () 및 usleep () 기능은 절전 시간을 지정하는 데 사용되는 시간 단위를 제외하고 동일합니다.
sleep () 함수에서는 시간이 초 단위로 지정되고 usleep () 함수에서는 시간이 마이크로 초 단위로 지정됩니다. 스레드 함수 sleep_for ()는 인수로 제공된 특정 기간 동안 스레드 실행을 일시 중단합니다. 두 번째 스레드 함수 sleep_until ()은 지정된 시간이 경과 할 때까지 스레드 실행을 일시 중단합니다.
추천 읽기 = >> 스레드 테스트 란 무엇입니까?
논의 된 모든 절전 기능은 일정 또는 기타 리소스 별 지연에 따라 반환하는 데 더 오래 걸릴 수 있습니다.
=> 여기에서 인기있는 C ++ 교육 시리즈를 읽어보십시오.
추천 도서
- 실습 예제가 포함 된 Python 주요 함수 자습서
- 예제를 사용한 C ++의 멀티 스레딩
- 직원 시간 추적을위한 10 가지 최고의 자유 시간 시계 소프트웨어
- QTP 자습서 # 21-작업 및 함수 라이브러리를 사용하여 QTP 테스트를 모듈화하고 재사용 할 수있게 만드는 방법
- 유형 및 예제가있는 C ++의 함수
- Unix 유틸리티 프로그램 명령 : What, Man, Find Su, Sudo (Part D)
- Selenium 전문가를위한 파트 타임 프리랜서 채용 기회
- 프리랜서를위한 최고의 시간 추적 앱 10 가지 (2021 SELECTIVE)