我试图编写一个 Timer 类(不知道 boost 有一个),然后当它不起作用时,我尝试使用以下代码输出时钟()的值:
#include <ctime>
#include <iostream>
int main()
{
for(int i = 0; i < 50; ++i)
{
std::cout << std::clock() << " ";
}
return 0;
}
当我运行程序时,我得到一系列 0。在使用 boost thread sleep 函数将时间延长一点时,我也有类似的经历(尽管几秒钟后,它会从 0 跳到 10,000 并保持输出 10,000)。
我正在运行 Gentoo Linux。这是平台的事情吗?一个 C++ 的东西?这是怎么回事?
编辑:奇怪的是,跳转到 10000 是在几秒之后,而不是毫秒。当我一次睡一秒钟时,需要五六秒才能达到 10000。但是,如果我理解正确的话。线程睡眠的时间对时钟()计数没有贡献吗?(这是有道理的;如果它在睡觉,为什么要执行时钟周期?)