std::this_thread::wait_for
是C++11中引入的一個函數,用于使當前線程等待指定的時間。它可以讓你避免忙等待(busy waiting),從而提高程序的性能。std::this_thread::wait_for
函數的原型如下:
template < class Rep, class Period >
typename std::enable_if< std::is_integral<Rep>::value && std::is_floating_point<Period>::value >::type
wait_for( std::chrono::duration<Rep, Period> rel_time );
其中,rel_time
是一個表示等待時間的std::chrono::duration
對象。你可以使用不同的時間單位,例如秒、毫秒等。
下面是一個使用std::this_thread::wait_for
的示例:
#include <iostream>
#include <chrono>
#include <thread>
int main() {
std::cout << "Starting...\n";
// 等待1秒
std::chrono::seconds wait_time(1);
if (std::this_thread::wait_for(wait_time) == std::chrono::steady_clock::time_point::min()) {
std::cout << "Timeout occurred.\n";
} else {
std::cout << "Wait completed.\n";
}
return 0;
}
在這個示例中,我們創建了一個表示1秒等待時間的std::chrono::seconds
對象,并將其傳遞給std::this_thread::wait_for
函數。如果等待時間到達,函數將返回std::chrono::steady_clock::time_point::min()
,否則返回實際等待結束的時間點。