将处理器旋转一段固定的CPU时间

时间:2012-01-21 21:01:21

标签: java concurrency cpu-usage

我正在寻找一种方法来将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时间?

1 个答案:

答案 0 :(得分:0)

通过谷歌搜索,我发现ThreadMXBean interface似乎有你需要的东西,以及a usage example。但是我不是Java开发人员,所以请大家好好理解。