Java 内核线程定时器中断的优先级队列实现

Java 内核线程定时器中断的优先级队列实现,java,algorithm,class,data-structures,operating-system,Java,Algorithm,Class,Data Structures,Operating System,我正在优化Nachos操作系统内核线程的定时器中断功能 导言 我有一个叫做alarms的类: public alarms(long wakeTime, KThread my_thread) { wakeTime=wakeTime; thread = my_thread; } public long getWakeTime() { return wakeTime; } public KThread get_my_thread() { return thread;

我正在优化Nachos操作系统内核线程的定时器中断功能

导言

我有一个叫做alarms的类:

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>();
Queue my_alarms=new PriorityQueue();
如何使优先级队列比较alarms类的wakeTime属性,并基于该属性生成最小堆

在C++中,i将过载操作符<函数>:


bool运算符这就是您的操作方式

public class Alarm implements Comparable<Alarm> {
   @Override 
    public int compareTo(Object o) {
        Alarm a = (Alarm) o; 
        return this.wakeTime - a.wakeTime ;
    }
}
公共类报警实现可比性{
@凌驾
公共整数比较对象(对象o){
报警a=(报警)o;
返回this.wakeTime-a.wakeTime;
}
}

这就是你要做的

public class Alarm implements Comparable<Alarm> {
   @Override 
    public int compareTo(Object o) {
        Alarm a = (Alarm) o; 
        return this.wakeTime - a.wakeTime ;
    }
}
公共类报警实现可比性{
@凌驾
公共整数比较对象(对象o){
报警a=(报警)o;
返回this.wakeTime-a.wakeTime;
}
}

应该是报警,而不是人。应该是报警,而不是人。