编程之美,JAVA控制CPU的使用率(2),完美曲线
中午抽个时间,把代码完成了,从效果看,不算很完美,不过我已经很满足了。
- /**
- * 编程之美,JAVA控制CPU的使用率(2),完美曲线
- *
- * @author 赵学庆,Java世纪网(java2000.net)
- *
- */
- public class T {
- public static void main(String[] args) throws Exception {
- // 角度的分割
- final double SPLIT = 0.01;
- //
- // 2PI分割的次数,也就是2/0.01个,正好是一周
- final int COUNT = (int) (2 / SPLIT);
- final double PI = Math.PI;
- // 时间间隔
- final int INTERVAL = 200;
- long[] busySpan = new long[COUNT];
- long[] idleSpan = new long[COUNT];
- int half = INTERVAL / 2;
- double radian = 0.0;
- for (int i = 0; i < COUNT; i++) {
- busySpan[i] = (long) (half + (Math.sin(PI * radian) * half));
- idleSpan[i] = INTERVAL - busySpan[i];
- radian += SPLIT;
- }
- long startTime = 0;
- int j = 0;
- while (true) {
- j = j % COUNT;
- startTime = System.currentTimeMillis();
- while (System.currentTimeMillis() - startTime < busySpan[j])
- ;
- Thread.sleep(idleSpan[j]);
- j++;
- }
- }
- }
下一个题目是啥呢?
我先去看看原版的资料再说吧,这个周末肯定能出来几个,呵呵。这个纯粹是算法的研究,收获不小。
顺便提供一个能够检测CPU使用率的JNI程序,我测试了,可以用。有兴趣的可以看看