usleep的文档指出调用usleep(0)
无效。但是,在我的系统(RHEL 5.2)上运行下面的 C++ 代码小片段,我发现它实际上看起来与usleep(1)
. 这是意料之中的吗?如果是这样,为什么文档与我在现实生活中看到的内容之间存在差异?
展品 A
代码:
#include <unistd.h>
int main()
{
for( int i = 0; i < 10000; i++ )
{
usleep(1);
}
}
输出:
$ time ./test
real 0m10.124s
user 0m0.001s
sys 0m0.000s
展品 B
代码:
#include <unistd.h>
int main()
{
for( int i = 0; i < 10000; i++ )
{
usleep(1);
usleep(0);
}
}
输出:
$ time ./test
real 0m20.770s
user 0m0.002s
sys 0m0.001s