gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:08:58 25 4
gpt4 key购买 nike

我正在为 Nachos OS 中的内核线程优化我的定时器中断函数。

简介 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>();

如何让优先级队列比较警报类的 wakeTime 属性,并基于此生成最小堆。

在 C++ 中,我会重载 operator< 函数,如下所示:

bool operator<(alarms a, alarms b){return a.wakeTime < b.wakeTime ? true : false;}

但我不确定如何在 Java 中使用比较器。有人可以澄清我将如何比较 java 中的 wakeTime 属性吗?我是否需要让我的警报类实现 Comparator 类,或者我将如何去做?

感谢您的宝贵时间!最好的问候,

最佳答案

这就是你的做法..

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

关于java - 内核线程定时器中断的优先级队列实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16139350/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com