编程之美,JAVA控制CPU的使用率(2),完美曲线
2008-10-24 13:06
447 查看
中午抽个时间,把代码完成了,从效果看,不算很完美,不过我已经很满足了。
/**
* 编程之美,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程序,我测试了,可以用。有兴趣的可以看看
/**
* 编程之美,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程序,我测试了,可以用。有兴趣的可以看看
JAVA通过JNI获得CPU的使用率(Usage Rate)
相关文章推荐
- 编程之美-JAVA控制CPU的使用率(一)
- 编程之美-控制CPU占用率曲线方法整理
- Java控制CPU的使用率
- second blog编程之美------控制cpu曲线
- 阿里巴巴Java开发手册- 编程规约-控制语句
- 50.java编程思想——创建窗口和程序片 布局控制
- java编程思想-控制执行流程
- JAVA程序设计(04.3)-----1.寻找完美数 10000以内 2.编程找出谁是小偷 3.21根火柴……
- java编程思想-----笔记(二)____操作符+流程控制
- [.NET][编程之美][1.1]C# 实现让CPU占用率曲线听你的指挥 – 可指定运行核心
- Java编程思想之控制流程
- 控制执行流程,初始化与清理-java编程思想-第4、5章
- 《Java 编程思想》-第4章 控制执行流程 笔记
- Java专家系列:CPU Cache与高性能编程
- JAVA控制CPU占用率(编程之美有感)(一)
- WPF 动态模拟CPU 使用率曲线图
- 24.JAVA编程思想——违例差错控制
- Linux下java获取CPU、内存、磁盘IO、网络带宽使用率
- 编程之美:让CPU占用率曲线听你指挥
- [Java] HashMap 导致的高 CPU 使用率