如果在单任务系统中运行,可以用C语言编写一个死循环,让CPU使用率一直保持在100%。
例如:while(true);
(注:DOS 就是单任务 *** 作系统)
如果在多任务系统中运行,则不可能只通过一个死循环就让CPU使用率一直保持在100%。
除了死循环,你还要让你的程序获得最高的优先级。
如果是多处理器环境,你还要启用多个线程来占用每个处理器。
(注:Windows 就是多任务 *** 作系统)
for(i=1;;i++)
{
if(++i%2==0) continue;//因为每次循环都执行这个语句,不执行下面语句,进而执行下一次循环
if(++i%3==0) break; //这一句永远也不执行,所以跳不出循环,出现死循环了。
}
一般在运行循环语句的时候,会保证判断条件一直在做改变,所以在某个时刻导致条件为假而退出循环。
如:
int n=10;while(n--) //当n--为0的时候退出循环
{
printf("n=[%d]\n");
}
而死循环,就是由于人为编写失误或程序需要导致循环条件一直为真,这样程序会永远执行循环中的语句,如:
int n=10;while(n++) //此时n++永远不等于0,则条件永远为真,死循环
{
printf("n=[%d]\n");
}
额这情况是软件的问题,没有任何办法。
使用率是15%感觉卡就不是CPU的事情了,CPU一直都是全力运转的,当CPU使用只有15%那就表示他只需要15%,就算给你100%的使用还是要卡,当你软件需要CPU资源的时候,你不加限制系统是不会限制CPU是使用。这就像你玩CS一样,使用率就10%,但是很卡,这时你要想的不是怎么CPU使用那么低,而是要想想是不是内存,或者显卡问题。
private sub command1_click() '按钮的单机事件 dim i as integer '定义一个整型变量i i=1 '给i赋值为1 do while i<100 '如果i<100则进入循环 i=i1 '每次循环 i 的值都等于i1,也就是其本身 loop '如果i的值小于100则继续循环end sub '过程结束
这个简单,详细点说,有三种方法
1while(1){
},也可以学学二楼,只要使括号里的表达式为真,或使其值是不为零的整数即可
2for(表达式1;表达式2;表达式3){
}
表达式1和表达式3,随你写,也可以空着,表达式2空着。
如for(;;){
}
for(i=0;;i++){
}
for(i=0;;){
}等等。
只要使括号里的表达式2为真,或使其值是不为零的数即可
3do{
}while(1);
只要使括号里的表达式为真,或使其值是不为零的整数即可
唔,你这个程序必然会卡死的,因为你所有的 *** 作都是在一个进程中做的,当你的程序在这个无限的for循环中时,那么你的程序只能一直for循环,其他的都执行不了,不要说让你的灯闪烁或者让你的st_home赋值为3了,建议使用多线程。。。还有你这个st_led两次变换之间不加延时的话,灯反应的过来么
以上就是关于用C语言编写一个死循环能让CPU使用率一直保持100%吗全部的内容,包括:用C语言编写一个死循环能让CPU使用率一直保持100%吗、C语言死循环、在C语言中,while 和do while的死循环例子等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)