0

首先,这是我的一个课程中一项庞大的编程任务的一小部分。

我有 10 个不同的优先级队列。像prio1,prio2,prio3。这些队列中的每一个都按进程号排序。

如果我想检查优先级为 3 的进程#16 是否需要用更高优先级的进程替换,最简单的方法是什么?

private static void checkHigherQueues( int runningPrio, int runningPid, int cpu ){
   for( int i = 1; i < 11; i++){
       if ( prio(i).peek() == null ){
       }else if( prio(i).peek() < runningPid && i == runningPrio){
           release from cpu....
       }

回答一些问题:

我为每个优先级使用不同的队列,因为我不知道您可以使用两个比较器进行优先级队列排序。这是我用于队列的代码,如何将其更改为先按优先级排序,然后按 pid 排序?

prio1 = new PriorityQueue<>(1, new Comparator<String>() {
            @Override
            public int compare( String x, String y ){
                int first = Integer.parseInt(x);
                int second = Integer.parseInt(y);
                return second - first;
            }
        });
4

0 回答 0