编写占用固定CPU比例的程序的关键是控制好Busy和Idle的比例,注意要在毫秒级别上控制,如果Busy的比例
为60%,则CPU的利用率在60%左右,这里Busy可以是一个无限循环,而Idle可以是sleep(),在Java中,
System.currentTimeMillis()获得的是从1970到现在的毫秒数,而Thead.sleep(400),也是指睡眠的毫秒数,因
此java在linux下写此程序比较简单,下面是一个示例程序,其中Busy为600毫秒,Idle为400毫秒。这个程序在
windows下不成功,windows下
可参考这个博客:点击打开链接
此程序在linux多CPU多核下,也能正常运行。
public class Test {
public static void main(String[] args) throws InterruptedException {
while(true){
long start = System.currentTimeMillis();
long end = System.currentTimeMillis();
while(end-start<600){ //运行600毫秒
end = System.currentTimeMillis();
}
Thread.sleep(400); //睡眠400毫秒
}
}
}