温馨提示×

c++ wait_for如何设置

c++
小樊
81
2024-11-24 12:05:50
栏目: 编程语言

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(),否则返回实际等待结束的时间点。

0