在C++中,通常用于延迟执行的函数有std::this_thread::sleep_for
和std::this_thread::sleep_until
。这两个函数都属于C++11引入的多线程库中的一部分。
std::this_thread::sleep_for
:这个函数接受一个std::chrono::duration
类型的参数,表示要延迟的时间长度。例如,std::this_thread::sleep_for(std::chrono::milliseconds(1000))
表示延迟1秒。这个函数会让当前线程进入睡眠状态,暂时释放CPU的控制权。
std::this_thread::sleep_until
:这个函数接受一个std::chrono::time_point
类型的参数,表示要延迟到的时间点。例如,std::this_thread::sleep_until(std::chrono::system_clock::now() + std::chrono::seconds(1))
表示延迟1秒。这个函数也会让当前线程进入睡眠状态,暂时释放CPU的控制权。
区别:
std::this_thread::sleep_for
是相对时间延迟,传入的参数是延迟的时间长度;std::this_thread::sleep_until
是绝对时间延迟,传入的参数是要延迟到的具体时间点。