用C语言编写一个死循环能让CPU使用率一直保持100%吗?

来自:    更新日期:早些时候
c语言的cpu占用率~

1、cpu执行一条命令的用时是固定的,例如一条printf语句在编译成机器码后交给cpu执行的话,cpu就需要1毫秒,这样就是1秒打印1000个字符串(仅是举例,实际时间可能不一样,但大体上是固定的)。

2、某个时刻可能CPU利用率会达到100%,但因为本身windows系统是多进程的,windows负责进程间切换。所以可能看起来是,但其实还是有一些windows消息(比如鼠标移动)的传递和处理,只不过大部分的cpu资源可能会被这个程序占用了

你的程序计算量越大,cpu负荷就越重,调度器会不断地把时间片给你的程序,但是程序还是不可能独占处理器资源,因为windows是个多任务系统。如果要独占处理器资源,需要换到类似dos这样的单任务系统中。你问的就是这个

我感觉可以,求采纳

殿碟课辅提刃

如果在单任务系统中运行,可以用C语言编写一个死循环,让CPU使用率一直保持在100%。

例如:while(true);
(注:DOS 就是单任务操作系统)

如果在多任务系统中运行,则不可能只通过一个死循环就让CPU使用率一直保持在100%。
除了死循环,你还要让你的程序获得最高的优先级。
如果是多处理器环境,你还要启用多个线程来占用每个处理器。
(注:Windows 就是多任务操作系统)

实际上你写的这个不是死循环,因为i的变化规律为1,2,...,MAX_INT,-MAX_INT-1,...,-1,0,所以最后会结束循环的。
第二个问题不知道

槽点太多

  1. 编译器会根据你的代码进行优化,空循环可能会被直接干掉

  2. 如果有操作系统的话,操作系统不会把所有cpu时间给你的进程

  3. print这种io操作会被阻塞,在完成之前操作系统会把你挂起

如果你真想用cpu煎鸡蛋,有几种方法

  1. 多创建cpu密集型的进程

  2. 在你的代码中关闭时钟中断然后循环,放入操作系统内核,让操作系统执行它(主要是要取得指令权限

  3. 直接把操作系统干掉,让你的代码占用所有资源



同意magipan的看法,死循环需要将i++;去掉。
其中这种死循环一般不会影响其他程序的运行,因为这只是一种阻塞方式,将处理器的空闲时间片占满,当其他程序需要使用处理器时,系统会将时间片分配给这些程序。
想让系统死机,可以考虑让运行的指令数成几何方式增长。

毒不是这样写地。。。
别忘了
如果你的程序真的占100%CPU
而且没有错误处理的话
它会被windows强行干掉的。。。

你经常碰到 结束任务
就是这么回事


用C语言编写一个死循环能让CPU使用率一直保持100%吗?视频

相关评论:
  • 15814725495关于C语言死循环程序
    詹民吕不知道我改后行不行,你自己再改改,主要是因为数组的下标越界 比如int a[5] ,它的元素是a[0]~a[4],千万要注意啊,还有 if(d=1)这个语句是永真的,要判断d是不是等于1 if(d==1)include<stdio.h> main(){ int i,j,a,b,c,d,flag;int flag1[5]={0,0,0,0,0};int k[5][...

  • 15814725495c语言怎样写是死循环
    詹民吕很简单,就是:while(1){ }

  • 15814725495一个计算器的C语言代码我不知道什么意思求每一句代码的注释
    詹民吕include include \/\/头文件的包含 int main(void){\/\/主函数,返回值是int整型,参数为空 int choice;\/\/选择 double a,result;\/\/a用来存放输入的值,result存放计算结果 while (1){\/\/一个死循环,为了让程序可以进行多次运算 result = 0.0;\/\/存放结果变量的初始化 printf("(1.加 2.减 3.乘 ...

  • 15814725495怎么样让一个c语言中的一段函数,从头运行下来若到后来不满足条件又让...
    詹民吕方法太多了,随便写个,楼上的也可以,但是写的不太明白 while(1){ …… \/\/要执行的一段函数 if (条件满足) \/\/判断是重新执行还是跳出 break; \/\/跳出死循环 }

  • 15814725495c语言中如何让while(1)下的一个程序在条件满足时(条件保持不变)只执...
    詹民吕while(1) \/\/while循环语句 1就是真(条件成立),0就是假(条件不成立) \/\/while(1) 永远都是真,如果内部没有跳出语句,那就是个死循环。 { \/\/car_in if(car_in==0) \/\/ if条件判断语句 (car_in=0,就是p1^0端口低电位时) { ms_delay(10); \/\/延时消抖 后...

  • 15814725495C语言中死循环的语句应该怎么写?
    詹民吕1.while(1)\/\/2,3,-4...总之不是0就行 { ...} 2.do { ...}while(1)3.if(1){...} 4.for(;;){...}

  • 15814725495我编了一个C++程序,有错,请大师们指点指点
    詹民吕发一下代码,谢谢!PS:看这样好像是死循环了 方法:例如在C语言程序中,语句“while(1)printf("*");”就是一个死循环,运行它将无休止地打印*号。不存在一种算法,对任何一个程序及相应的输入数据,都可以判断是否会出现死循环。因此,任何编译系统都不做死循环检查。在设计程序时,若遇到死循环...

  • 15814725495C语言出现了 死循环 !!!
    詹民吕你的死循环出现在你的while里面,只要用户输入不为10,就会一直运行下去.你设置的 i 值应该是用户输入次数,所以每次循环会减1,但是你的while循环判断里面没有加入判断 i 是否等于或小于0,所以 i 小于或等于0的时候就不会跳出循环了.修改的话只需要把while那一句改成:while(a != 10 && i > 0)...

  • 15814725495用c语言做一个死循环有多少种方法,其中哪个方案最好?
    詹民吕1 主要分为两种:使用for语句的和使用while语句的。不给出循环终止条件时便是死循环。2 这两种方案没有好坏之分,因为其都可以达到想要的效果,但有简洁之分。比较简洁的如下 for (;;);while (1);3 扩展:在编程过程中,死循环是要避免的 ...

  • 15814725495编程中的的死循环怎么弄的?
    詹民吕死循环就是让程序永不停歇地执行,随便举个例子,可以在while判断语句中,直接给个true,然后执行while里面的打印函数,while(true){ printf("……")} 这样就是死循环,永远不会终止,除非电脑内存炸了,死循环会影响电脑性能的,理解就行,可以尝试一两次看看效果,平时用不到的,编程的时候要避免...

  • 相关主题精彩

    版权声明:本网站为非赢利性站点,内容来自于网络投稿和网络,若有相关事宜,请联系管理员

    Copyright © 喜物网