参考: http://stackoverflow.com/questions/1202184/throttling-cpu-memory-usage-of-a-thread-in-java
one way would be to adaptively sleep the threads, similarly as video playback is done in Java. If you know you want 50% core utilization, the your algorithm should sleep approximately 0.5 seconds - potentially distributed within a second (e.g. 0.25 sec computation, 0.25 sec sleep, e.t.c.).
另外,从jvisualvm里面看到的cpu使用率,是机器上面的总的cpu使用率,如果pc机是4核的话,50%的CPU,显示的是12.5%, 100%的CPU,显示的是25%。
本文探讨了如何在Java中通过适配性睡眠线程来控制CPU使用率,达到50%核心利用率的目标。具体实现是通过计算线程在一秒内大约0.5秒的睡眠时间和0.5秒的计算时间来调整性能,同时解释了从jvisualvm中观察到的CPU使用率如何反映机器整体情况,如在四核PC上,50%的CPU显示为12.5%。
773

被折叠的 条评论
为什么被折叠?



