题目描述
写一个程序,让用户来决定Windows任务管理器(Task Manager)的CPU占用率。程序越精简越好,计算机语言不限。例如,可以实现下面三种情况:
- CPU的占用率固定在50%,为一条直线;
- CPU的占用率为一条直线,但是具体占用率由命令行参数决定(参数范围1-100);
- CPU的占用率状态是一个正弦曲线。
思路
1.任务管理器大约1S钟更新一次 2.让它在任务管理器的刷新周期内一会儿忙,一会儿闲,通过调节忙/闲比例,控制CPU占用率
//解法一:执行空循环96000000次,选9600000
//的原因是因为假设这段代码运行的CPU是P4
//2.4Ghz,现代CPU每个时钟周期可以执行两条
//以上的代码,我们取平均值两条,于是就有(
//2400000000*2)/5=960000000,也就是说CPU1
//秒可以运行这隔循环960000000次,但我们不能简单的将CPU工作1s,再休息1s,波形很可能就是锯齿状的,我们尝试减低两个数量级,因为10ms是因为比较接近windows的调度时间片。
public class CPUTest {
public static void main(String[] args) throws Exception{
for (;;) {
for (int i = 0; i < 96000000; i++) {
;
}
Thread.sleep(10);
}
}
}
–未完待续