时间接口与信号管理技术解析
1. 时间接口处理
在处理时间接口时,有几个关键的概念和方法需要了解。
首先是 clock_nanosleep()
函数的第二个参数,它是一个标志,可以是 TIME_ABSTIME
或 0。如果传递 TIME_ABSTIME
, reqClockSleep
变量将被视为绝对时间;如果传递 0,则被视为相对时间。例如,通过 clock_gettime()
获取一个绝对时间点存储在变量 ts
中,给 ts
加上 2 秒后,将 &ts
传递给 clock_nanosleep()
,程序会等待到这个特定的绝对时间。
另外, std::this_thread::sleep_for
可以让当前线程休眠指定的时间。它是一个模板方法,接受一个表示持续时间的参数。例如,要让当前线程(这里是主线程,所以整个进程会休眠)休眠 1.5 秒,可以这样使用:
#include <iostream>
#include <chrono>
#include <thread>
int main() {
std::cout << "Starting ..." << std::endl;
std::this_thread::sleep_f