gpt4 book ai didi

java - 循环调度程序没有产生正确的结果

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:13:14 25 4
gpt4 key购买 nike

我正在努力想象一个简单的 Round Robin 调度程序,该程序计算到达服务器的固定数量进程的平均等待时间。假设我得到了一组到达时间、突发时间和量子时间(服务每个进程的固定时间),它按到达时间的升序排序。

public float roundRobin (int n, int[] arrivalTimes, int[] runTimes, int quantumTime) {

Queue<Integer> queue = new LinkedList<>(Arrays.asList(runTimes));
int waitingTime = 0;

while (!queue.isEmpty()) {
int currentProcess = queue.poll();
if (currentProcess > quantumTime) {
int remaining = currentProcess - quantumTime;
waitingTime += remaining;
queue.add(remaining );
}
}

return (float)waitingTime/n;
}

当我尝试使用我在 Internet 上找到的示例输入运行上面的代码时,它不会产生正确的平均等待时间。有人可以指导我做错什么以及如何正确实现我的结果吗?任何帮助将不胜感激!

最佳答案

int[]是单个对象,因此您无法通过 Arrays.asList() 将其转换为列表因为它返回 List<int[]>但是你需要创建函数来做到这一点

public static List<Integer> asList(int[] array) {
List<Integer> result = new ArrayList<>(array.length);
for (int i : array)
result.add(i);
return result;
}

关于java - 循环调度程序没有产生正确的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55176245/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com