我正在寻找一种方法,让 CPU 旋转固定的 CPU 时间来模拟假“工作”,以便我可以测试一些并发算法。基本上,我正在寻找一种方法让线程执行需要 N 秒 CPU 时间的操作。
我最初的实现是这样的:
public void doWork() {
long startTime = System.currentTimeMillis();
while(System.currentTimeMillis() - startTime < mDurationMillis) {
//Churn
}
System.out.println("Task " + mTaskId + " on thread " + Thread.currentThread().getId() + ": done work!");
}
但我很快意识到这只是测量实时时间,100 个此类任务的完成时间与单个处理器上的一个任务的完成时间大致相同。有没有办法测量线程运行时使用的 CPU 时间?
最佳答案
通过一点谷歌搜索,我发现了 ThreadMXBean interface这似乎有你需要的,以及 a usage example 。不过,我不是 Java 开发人员,所以请持保留态度。
关于java - 让处理器旋转固定的 CPU 时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8956639/