Nachos OS のカーネル スレッドのタイマー割り込み関数を最適化しています。
ここで紹介します。
私はアラームと呼ばれるクラスを持っています:
public alarms(long wakeTime, KThread my_thread)
{
wakeTime=wakeTime;
thread = my_thread;
}
public long getWakeTime()
{
return wakeTime;
}
public KThread get_my_thread()
{
return thread;
}
min-heap ベースのプライオリティ キューもあります。
Queue<alarms> my_alarms = new PriorityQueue<alarms>();
プライオリティ キューでアラーム クラスの wakeTime 属性を比較し、それに基づいて最小ヒープを生成するにはどうすればよいですか。
C++ では、次のように operator< 関数をオーバーロードします。
bool operator<(alarms a, alarms b){return a.wakeTime < b.wakeTime ? true : false;}
しかし、Javaでコンパレータを操作する方法がわかりません。JavaでwakeTime属性を比較する方法を誰かが明確にしてもらえますか? アラーム クラスに Comparator クラスを実装する必要がありますか、それともどうすればよいですか?
お時間をいただきありがとうございます!よろしくお願いします、