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
完成。