まず、これは私のクラスの1つでの巨大なプログラミング課題のほんの一部です。
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....
}
いくつかの質問に答えるには:
2つのコンパレータを使用して優先度キューを並べ替えることができるとは知らなかったため、優先度ごとに異なるキューを使用しています。これは私がキューに使用しているコードですが、最初に優先度で並べ替え、次に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;
}
});