thread_sleep_for
thread_sleep_for (스레드 슬립)
이 함수는 현재 스레드의 실행을 지정된 시간 동안 최소한 중지해요. std::this_thread::sleep_for는 C++11부터 사용할 수 있으며, 시간 단위를 자유롭게 지정할 수 있는 chrono::duration을 받아요. 스케줄링이나 시스템 상황에 따라 실제 대기 시간은 요청한 시간보다 길어질 수 있어요.
출처: cppreference
본문
<thread> 헤더에 정의됨 |
||
|---|---|---|
template < class Rep , class Period > void sleep_for ( const std :: chrono :: duration < Rep , Period >& sleep_duration ); |
(C++11부터) |
현재 스레드의 실행을 지정된 sleep_duration 동안 최소한 중지해요.
이 함수는 스케줄링이나 리소스 경합 지연 때문에 sleep_duration보다 더 오래 블록될 수 있어요.
표준은 지속 시간을 측정할 때 안정 시계(steady clock)를 사용하도록 권장해요. 구현이 시스템 시계를 대신 사용하면 대기 시간이 시계 조정에 민감해질 수도 있어요.
매개변수 (Parameters)
sleep_duration |
- | 잠들 시간 duration |
|---|
반환값 (Return value)
(없음)
예외 (Exceptions)
실행 중 clock, time_point 또는 duration에서 발생한 모든 예외 (표준 라이브러리가 제공하는 clock, time point, duration은 절대 던지지 않아요.)
예제 (Example)
#include <chrono>
#include <iostream>
#include <thread>
int main()
{
using namespace std::chrono_literals;
std::cout << "Hello waiter\n" << std::flush;
const auto start = std::chrono::high_resolution_clock::now();
std::this_thread::sleep_for(2000ms);
const auto end = std::chrono::high_resolution_clock::now();
const std::chrono::duration<double, std::milli> elapsed = end - start;
std::cout << "Waited " << elapsed << '\n';
}
가능한 출력 (Possible output):
Hello waiter
Waited 2000.13 ms
같이 보기 (See also)
sleep_until (C++11) |
지정된 시점까지 현재 스레드의 실행을 중지해요 (함수) [edit] |
|---|