在《编程之美--微软技术面试心得》的第1.1节中,讲到了怎么使cpu的利用率一直维持在50%左右。
个人感觉这个例子很有趣,它不光体现出了程序对计算机的掌控,更体现了编程不是枯燥的代名词,它一样可以很有趣,就比如此例!
这里主要是利用此例的解法一顺便把sleep函数讲一下:
要操作CPU的使用率曲线,就需要使CPU在一段时间内(根据Task Manager的采样率)跑busy和idle两个不同的循环(loop),从而通过不同的时间比例,来调节CPU使用率。
Busy loop 可以通过执行空循环来实现,idle 可以通过Sleep()来实现。
代码清单:
int main()
{
for(; ;)
{
for(int i=0; i < 9600000; i++)
;
Sleep(10);
}
return 0;
}
在VC6.0中代码是:
#include <stdio.h>
#include <windows.h>
int main(void)
{
int i;
for(;;)
{
for(i=0;i<9600000;i++)
;
Sleep(10);//根据具体CPU来确定的。
}
return 0;
}
在此把Sleep()函数讲下:
Sleep函数
在VC中使用带上头文件
#include <windows.h>
在标准C中的头文件是
#include <stdlib.h>
注意:
在VC中Sleep中的第一个英文字符为大写的"S"
在标准C中是sleep, 不要大写.. 下面使用大写的来说明,, 具体用什么看你用什么编译器. 简单的说VC用Sleep, 别的一律使用sleep.
Sleep函数的一般形式:
Sleep(unisgned long);
其中,Sleep()里面的单位,是以毫秒为单位,所以如果想让函数滞留1秒的话,应该是Sleep(1000);
15:34:03