- thread[meta header]
- std::this_thread[meta namespace]
- function template[meta id-type]
- cpp11[meta cpp]
namespace std {
namespace this_thread {
template <class Clock, class Duration>
void sleep_until(const chrono::time_point<Clock, Duration>& abs_time);
}}
- time_point[link /reference/chrono/time_point.md]
指定した絶対時刻を過ぎるまで現スレッドをブロックする。
引数 abs_time
で指定した絶対時間を経過するまで現在のスレッド、すなわちこの関数を呼び出したスレッド自身をブロックする。指定した絶対時間 以上 の時刻になると、現スレッドのブロックが解除されて後続処理の実行が開始される。なお、タイマーの精度は処理系依存。
特に他操作と同期しない。
- C++11 :
Clock
がTrivialClock要件を満たしかつDuration
上の操作が例外送出しない限りは、この関数は例外送出しない。 - C++14 : 時計クラス、
time_point
クラス、duration
クラスの構築が例外を送出する場合、この関数はそれらの例外を送出する。
#include <thread>
#include <chrono>
int main()
{
auto abs_time = std::chrono::system_clock::now() + std::chrono::seconds(15);
//...
std::this_thread::sleep_until(abs_time);
return 0;
}
- std::this_thread::sleep_until[color ff0000]
- std::chrono::system_clock[link /reference/chrono/system_clock.md]
- now()[link /reference/chrono/system_clock/now.md]
- std::chtono::seconds[link /reference/chrono/seconds.md]
- C++11
- Clang:
- GCC:
- GCC, C++11 mode: 4.6.3, 4.7.0
- ICC:
- Visual C++: 2012, 2013, 2015