РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
569 of 815 menu

Функция sleep_until

Функция sleep_until приостанавливает выполнение текущего потока до наступления указанного момента времени. В параметр функции мы передаем момент времени, до которого поток должен быть приостановлен. Функция объявлена в заголовочном файле <thread> и доступна начиная со стандарта C++11.

В отличие от sleep_for, которая принимает длительность паузы, sleep_until принимает абсолютный момент времени, до которого следует спать. Если указанный момент уже прошел, функция возвращает управление немедленно.

Синтаксис

template <class Clock, class Duration> void sleep_until(const chrono::time_point<Clock, Duration>& sleep_time);

Параметр sleep_time задает момент времени, до которого поток должен быть приостановлен.

Пример

Давайте приостановим выполнение потока на 2 секунды, используя текущий момент времени плюс длительность:

#include <iostream> #include <thread> #include <chrono> using namespace std; int main() { auto start = chrono::system_clock::now(); auto wake = start + chrono::seconds(2); cout << "Start" << endl; this_thread::sleep_until(wake); cout << "Wake up" << endl; return 0; }

Результат выполнения кода:

"Start" "Wake up"

Пример

Давайте приостановим поток до конкретного момента времени, заданного через time_point с часами steady_clock:

#include <iostream> #include <thread> #include <chrono> using namespace std; int main() { auto start = chrono::steady_clock::now(); auto wake = start + chrono::milliseconds(500); cout << "Before sleep" << endl; this_thread::sleep_until(wake); cout << "After sleep" << endl; return 0; }

Результат выполнения кода:

"Before sleep" "After sleep"

Смотрите также

  • функция sleep_for,
    которая приостанавливает поток на заданную длительность
  • класс time_point,
    который представляет момент времени
  • класс system_clock,
    который представляет системные часы
  • класс steady_clock,
    который представляет монотонные часы
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить