有段java代码怎么理解???

[复制链接]
查看11 | 回复2 | 2011-7-21 21:18:56 | 显示全部楼层 |阅读模式
public class SineManegement {
        public static final double TIME = 1000;
        public static void main(String[] args) throws InterruptedException {
                double x = 0;
                double y = 0;
                while (true) {
                         y = (Math.sin(x) + 1) * TIME / 2;
                         doSomeSimpleWork(y);
                         x += 0.1;
                         Thread.sleep((long) (TIME - y));
                 }
}
        private static void doSomeSimpleWork(double y) {
                long startTime = System.currentTimeMillis();
                while ((System.currentTimeMillis() - startTime) < y) {}
        }
}
主要就是主方法里的循环作用,特别是y = (Math.sin(x) + 1) * TIME / 2;
代码的作用是cpu的正弦曲线。

回复

使用道具 举报

千问 | 2011-7-21 21:18:56 | 显示全部楼层
w我觉得里面的那个循环是保持程序一直处于运行监控状态的,至于后面那个公式嘛,数学思想早就忘光了, 我也想期待一下这个是什么函数,该不会就是那个曲线方程吧,期待高手来解答...
回复

使用道具 举报

千问 | 2011-7-21 21:18:56 | 显示全部楼层
sin 函数 范围在 -1~+1之间Math.sin(x) + 1范围变成0~2之间乘以500后,y的范围就在0~1000之间变化[500-1000-0]初始值是500TIME - y这个值就不会是负值...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行