linux c语言sleep不占用cpu的验证

linux c语言sleep不占用cpu的验证,第1张

linux c语言sleep不占用cpu的验证

1. 不使用sleep的循环程序1.c:

void main(void)
{
    while(1)
    {
        ;
    }
}

编译:gcc 1.c -o 1

运行程序1之前的cpu:

运行一次./1 &,用htop查看cpu:

运行8次./1 &,用htop查看cpu:

运行killall 1,终止所有程序1,用htop查看cpu:

  结论:不使用sleep,循环会一直占用cpu

2.使用sleep(0)的循环程序0.c:

void main(void)
{
    while(1)
    {
        sleep(0);
    }
}

运行8次./0 &,用htop查看cpu:

 结论:sleep(0)的循环仍然会占用cpu。

3.使用sleep(1)的循环程序2.c: 

void main(void)
{
    while(1)
    {
        sleep(1);
    }
}

运行16次./2 &,用htop查看cpu:

结论:sleep(1)的循环基本不占用cpu。

3.使用sleep(1000)的循环程序3.c: 

void main(void)
{
    while(1)
    {
        sleep(1000);
    }
}

运行16次./3 &,用htop查看cpu:

 结论:sleep(1000)的循环基本不占用cpu。

4.使用usleep(1)的循环程序4.c: 

void main(void)
{
    while(1)
    {
        usleep(1);
    }
}

运行16次./4 &,用htop查看cpu:

 结论:usleep(1)的循环占用cpu不多。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5687095.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存