首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

编程之好一 : 让CPU占有率曲线听你指挥

2013-10-03 
编程之美一 : 让CPU占有率曲线听你指挥写一个程序,让用户来决定Windows任务管理器(Task Manager)的CPU占有

编程之美一 : 让CPU占有率曲线听你指挥

写一个程序,让用户来决定Windows任务管理器(Task Manager)的CPU占有率。程序越精简越好,可以实现以下三种情况:

/**** * 3. JAVA控制CPU的使用率 - 完美曲线 *  * 把一条正弦曲线0~2π之间的弧度等分成200份进行抽样,计算每个抽样点的数据  * 然后每隔300ms的时间取下一个抽样点,并让cpu工作对应振幅的时间 *  ****/public class CPUTest3 {public static final int SAMPLING_COUNT = 200; // 抽样点数量 2/RANDIAN_INCREMENTpublic static final double PI = Math.PI; // pi值public static final double RANDIAN_INCREMENT = 0.01; // 抽样弧度的增量, 2/SAMPLING_COUNTpublic static final int TOTAL_AMPLITUDE = 300; // 振幅, 每个抽样点对应的时间片public static void main(String[] args) throws Exception {//  角度的分割   long[] busySpan = new long[SAMPLING_COUNT];long[] idleSpan = new long[SAMPLING_COUNT];int amplitude = TOTAL_AMPLITUDE / 2;double radian = 0.0;for (int i = 0; i < SAMPLING_COUNT; i++) {busySpan[i] = (long) (amplitude + (Math.sin(PI * radian) * amplitude));radian += RANDIAN_INCREMENT;}long startTime = 0;for (int j = 0;; j = (j + 1) % SAMPLING_COUNT) {startTime = System.currentTimeMillis();while (System.currentTimeMillis() - startTime < busySpan[j]) {;}Thread.sleep(idleSpan[j]);}}}


3楼zdp072昨天 17:27
现在电脑都都双核以上了,单核的应该能模拟出来
2楼zhaopengyr昨天 17:23
我测了下,第一个只能在20%左右,远远达不到50%
1楼zhaopengyr昨天 17:20
第二个只能在13左右浮动。。。。

热点排行