您的位置:首页 > 其它

单核CPU画正弦曲线

2016-04-17 22:11 141 查看
编程之美第一个题目是控制CPU的比例,让单核CPU的利用率一直在50%,还有一个是画正弦曲线。

自己用java写了一个,如下:

public class Solution {

public void drawSin(){
int width = 200;    //数组宽度,理解为正弦的步长
int height = 100;   //正弦的最大高度

int mid = height/2; //一半高度,

//这个数组用于控制处于CPU busy状态的高度
//那其余的高度就用总高度减去它
int[] highs = new int[width];

double interval = 2*Math.PI/width;

double init = 0;
for(int i=1;i<width;i++){
highs[i] = (int)(Math.sin(init)*mid+mid);   //这样成的时候,最大值是2*mid,最小值是0
init += interval;
}

for(int i=0;;i=(i+1)%width){    //无限循环

long start = System.currentTimeMillis();

while(System.currentTimeMillis()-start<highs[i]);   //busy的部分
try {
Thread.sleep(height-highs[i]);      //idle的部分
} catch (InterruptedException e) {
e.printStackTrace();
}

}
}

public static void main(String[] args) {

Solution s = new Solution();
s.drawSin();
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: