栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

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

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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不多。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/690623.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号