wait_for
是 C++ 标准库 <chrono>
中的一个函数,它用于在给定的时间段内等待某个条件成立或者超时
wait_for
的常见用途如下:
同步操作:当你需要等待某个线程完成一个任务时,可以使用 wait_for
。例如,你可以使用 std::this_thread::sleep_for
来让当前线程休眠一段时间。
事件等待:在事件驱动的程序中,wait_for
可以用于等待一个特定的事件发生。例如,你可以使用 std::condition_variable
和 std::unique_lock
来实现线程间的同步。
超时控制:当你需要在一定时间内完成某个操作时,可以使用 wait_for
来实现超时控制。例如,你可以使用 std::chrono::system_clock
和 wait_for
来实现一个定时器。
下面是一个简单的示例,展示了如何使用 wait_for
实现线程休眠:
#include <iostream>
#include <chrono>
#include <thread>
int main() {
std::cout << "Sleeping for 5 seconds...\n";
// 等待 5 秒
std::chrono::seconds sleep_duration(5);
std::future<void> result = std::async(std::launch::async, std::this_thread::sleep_for, sleep_duration);
result.get();
std::cout << "Awake!\n";
return 0;
}
在这个示例中,我们使用 std::async
和 std::this_thread::sleep_for
来实现线程休眠。wait_for
函数在这里被隐式地用于等待 std::this_thread::sleep_for
完成。