我有一个PriorityBlockingQueue
我正在添加SocketHolder
,如下所示。让我们说这个代码运行的当前数据中心是abc
。我们有三个数据中心abc
,def
和pqr
。
private static final PriorityBlockingQueue<SocketHolder> liveQueue = new PriorityBlockingQueue<>();
for (SocketHolder socket : listOfSockets) {
liveQueue.add(socket);
}
现在我需要做的是:
liveQueue
上设置某种排序,以便数据中心为SocketHolder
的所有abc
(这是运行代码的当前数据中心),它们应位于top,这意味着当我们从liveQueue
SocketHolder
检索所有abc
时,SocketHolder
数据中心应先出现,然后再出现在其他所有pqr
上。同样适用于当前数据中心为def
或SocketHolder
。下面是我的compareTo
类,它实现了Comparable接口,但我在liveQueue
方法中混淆了我需要做的事情,以便在SocketHolder
的顶部(在向其添加元素之后) )我们拥有其数据中心为当前数据中心的所有public final class SocketHolder implements Comparable<SocketHolder> {
private final Socket socket;
private final Datacenter dc;
private final Context context;
public SocketHolder(Socket socket, Datacenter dc, Context context) {
super();
this.socket = socket;
this.dc = dc;
this.context = context;
}
@Override
public int compareTo(SocketHolder o) {
// String currentDC = Utils.CURRENT_DATACENTER.get().name();
return 0;
}
}
,然后是其他没有优先级的数据中心。
gen1
答案 0 :(得分:1)
实时数据中心将被分配优先级1,其他数据中心优先级为2.队列将首先处理最低优先级。
$( "#checkme" ).on( "click", function() {
if($( "#checkme:checked" ).length > 0) {
$('#submit').prop('disabled', false);
} else{
$('#submit').prop('disabled', true);
}
});