写JAVA程序实现CPU使用率保持在50%(附加画正弦函数)
来源:互联网 发布:铁路造价软件培训 编辑:程序博客网 时间:2024/06/07 02:48
《编程之美》当中的引子。
如何编程实现控制CPU的使用率维持在50%?
直接分为busy和idle时间。
因为是取平均值,所以两者各占一半,即可实现50%。
笨方法:
public static void main(String args[]) throws InterruptedException{for(;;){for(int i=0;i<30760000;i++);Thread.sleep(10);}}
其中i做循环的次数,取决于计算机的不同。
图一:
好方法:
使用System.currentTimeMillis()
public static void main(String args[]) throws InterruptedException{int busyTime = 10;int idleTime = busyTime;while(true){long startTime = System.currentTimeMillis();//busy loop:while((System.currentTimeMillis()-startTime)<=busyTime);Thread.sleep(idleTime);}}
图二:(可以看出相较于笨方法,直线更加优美)
实现画正弦函数:
思路是一样的,只是忙闲比例不一样而已。
取200个抽样点,存储于数组。
循环取数组做操作即可。
public static void main(String args[]) throws InterruptedException{final int SAMPLING_COUNT = 200;final double PI = 3.1415926535;final int TOTAL_AMPLITUDE = 300;int[] busySpan = new int[SAMPLING_COUNT]; int amplitude = TOTAL_AMPLITUDE/2;double radian = 0.0;double radianIncrement = 2.0/(double)SAMPLING_COUNT;for(int i=0;i<SAMPLING_COUNT;i++){busySpan[i] = (int)(amplitude+Math.sin(PI*radian)*amplitude);radian += radianIncrement;}long startTime = 0;for(int j=0;;j=(j+1) % SAMPLING_COUNT){startTime = System.currentTimeMillis();while((System.currentTimeMillis()-startTime)<=busySpan[j]);Thread.sleep(TOTAL_AMPLITUDE-busySpan[j]);}}图三:
0 0
- 写JAVA程序实现CPU使用率保持在50%(附加画正弦函数)
- java实现计算cpu使用率
- 写程序+控制cpu占用率-4+绘制CPU使用率的正弦曲线2+C#+实现
- 编程之美:如何让CPU使用率一直保持在50%左右
- 编程之美:如何让CPU使用率一直保持在50%左右
- Java程序 CPU使用率过高怎么办?
- java程序,多核,cpu使用率上不去?
- 程序CPU使用率探讨
- Java程序控制CPU使用率
- 命令行参数,让CPU 的使用率在保持任意位置, 如90%
- 查找Java程序中CPU使用率最大的线程
- 如何找到 java 程序 CPU 使用率100%的原因
- 通过/proc/stat文件信息,java实现计算cpu使用率
- linux 在 cpu/内存 使用率
- 写程序 控制cpu占用率-4 绘制CPU使用率的正弦曲线2 通过C#指定线程运行的 CPU
- Algorithm学习笔记 --- 编写程序怎么让cpu的使用率为50%(编程之美)
- java获取cpu使用率/内存使用率/硬盘的使用率
- java获取cpu使用率/内存使用率/硬盘的使用率
- GDI与GDI+在RECT结构的区别
- 创建型模式-FactoryMethod ( 工厂方法 )
- caffe中增加自己的layer
- 'JAVAC' 不是内部或外部命令
- 逆序对的查找
- 写JAVA程序实现CPU使用率保持在50%(附加画正弦函数)
- Ubuntu samba安装服务器与图形管理界面
- 数据挖掘 学习路线(转)
- Java POI导出excel
- 创建型模式-Singleton ( 单态模式 )
- Android关于弹出软键盘,页面被顶上去的问题。
- iOS战记
- 机器学习的最佳入门学习资源(转)
- 任务调度(二)——jdk自带的Timer 动态修改任务执行计划