我在RedHat 6下面的代码片段:CPU利用率6
#include <unistd.h>
int main(int argc, char *argv[])
{
while(true)
{
#ifdef SLEEP
sleep(1);
#endif
#ifdef USLEEP
usleep(1000);
#endif
}
return 0;
}
它应该睡觉完全相同的maount因为1000我们= 1毫秒 在RedHat 6的一个睡眠取0 %利用率始终。 有睡眠者一直占1.5%至2%。我有很多这些服务器都在维护中。 任何解释为什么usleep在redhat 6上对CPU更敏感? 在红帽5我看到没有区别。 顺便说一下,我看到在redhat 6上CPU的灵敏度要高得多。任何已知的问题呢?
'usleep'将参数设置为**微秒**而不是毫秒。 1000000微秒等于1秒。所以叫'usleep(1000000)' – VoidPointer
请阅读我的评论下面的答案1. 1000 us = 1 ms –
@issac请在下面阅读我的答案。 – VoidPointer