我正在优化Nachos操作系统中内核线程的计时器中断函数。
简介here
我有一门课叫警报:

public alarms(long wakeTime, KThread my_thread)
{
    wakeTime=wakeTime;
    thread = my_thread;
}

public long getWakeTime()
{
    return wakeTime;
}

public KThread get_my_thread()
{
    return thread;
}

我还有一个基于最小堆的优先级队列:
Queue<alarms> my_alarms = new PriorityQueue<alarms>();

如何使优先级队列比较Alarms类的wakeTime属性,并基于此生成最小堆。
在C++中,我将重载运算符
bool operator<(alarms a, alarms b){return a.wakeTime < b.wakeTime ? true : false;}

但我不知道如何在java中使用比较器。有人能解释一下我如何比较java中的wakeTime属性吗我需要让我的alarms类实现comparator类吗,或者我该怎么做呢?
谢谢你抽出时间!
谨致问候,

最佳答案

你就是这样做的。。

public class Alarm implements Comparable<Alarm> {
   @Override
    public int compareTo(Object o) {
        Alarm a = (Alarm) o;
        return this.wakeTime - a.wakeTime ;
    }
}

09-11 23:05