• Class / Function / Type

      std::
    • Header file

      <>
    • Other / All

    最終更新日時(UTC):
    が更新

    履歴 編集

    function template
    <thread>

    std::this_thread::sleep_until

    namespace std {
    namespace this_thread {
      template <class Clock, class Duration>
      void sleep_until(const chrono::time_point<Clock, Duration>& abs_time);
    }}
    

    概要

    指定した絶対時刻を過ぎるまで現スレッドをブロックする。

    テンプレートパラメータ制約

    効果

    引数 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;
    }
    

    出力

    バージョン

    言語

    • C++11

    処理系

    参照