最近我一直在用 C++ 编写一个程序,它 ping 三个不同的网站,然后根据通过或失败,它会等待 5 分钟或 30 秒,然后再试一次。
目前我一直在使用 ctime 库和以下函数来处理我的等待。但是,根据我的 CPU 计,这是一个不可接受的解决方案。
void wait (int seconds)
{
clock_t endwait;
endwait = clock () + seconds * CLOCKS_PER_SEC;
while (clock () < endwait) {}
}
这个解决方案不可接受的原因是,根据我的 CPU 计,程序在等待时以我的 CPU 的 48% 到 50% 运行。我有一个 Athlon 64 x2 1.2 GHz 处理器。我的 130 行程序也不可能接近 50%。
我怎样才能更好地编写我的等待函数,以便它只使用最少的资源?