This question already has answers here:
usleep() to calculate elapsed time behaves weird
(2 个回答)
2年前关闭。
在下面的 C++ 程序中,我使用函数
然而结果如下:
第一种方法: 只需要 1.5 秒 第二种方法: 大约需要 1.5 分钟!
实际上,我将需要第二种方法。根据这个 Answer ,我想我需要一个比
(2 个回答)
2年前关闭。
在下面的 C++ 程序中,我使用函数
usleep()
休眠 1.5 秒。我用 2 个等效的方法实现了它,如下所示:#include <iostream>
#include <unistd.h>
using namespace std;
int main() {
//METHOD #1
cout<<"sleep"<<endl;
usleep(1500000);
cout<<"wake up"<<endl;
//METHOD #2
cout<<"sleep"<<endl;
for(int i=0; i<1500000; i++)
usleep(1);
cout<<"wake up"<<endl;
return 0;
}
然而结果如下:
实际上,我将需要第二种方法。根据这个 Answer ,我想我需要一个比
usleep()
更准确的函数。有人可以帮忙吗? 最佳答案
来自 the documentation(强调我的)
所以换句话说,之所以需要更长的时间,是因为它现在“进入休眠”和“唤醒”了 1500000 次而不是一次,而且 sleep 持续时间如此短,开销可能比实际微秒大得多 sleep 。
关于c++ - usleep 内循环花费的时间太长,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53744238/
10-11 18:26