0

我目前正在寻找一个线程安全的程序,允许我在我的程序中实现时间优先级。如果您愿意,我很乐意与您分享代码,但这对我的问题并不重要,我认为这并不重要。我最初在启动并运行该程序的(非线程安全)版本时使用了链表,但现在我正在切换到线程安全版本,我已经从链表更改为并发链接队列。问题是我需要从队列中获取元素(通常从头部,偶尔从尾部)。我真的只需要看看头部的元素是否满足某个属性。在链表版本中,它看起来像:

if (order.getQuantity()>= a.getFirst().getQuantity()){
                        Fill orderfill = new  Fill(a.getFirst().getQuantity(),a.getFirst().getLimitPrice(), order.getOrderID(),a.getFirst().getOrderID());
                        fills.add(orderfill);
                        order.setQuantity(order.getQuantity()-a.getFirst().getQuantity());
                        a.removeFirst();

这里的“a”是我的链表。当我更改为并发链接队列时,getFirst 方法不再存在。是否有一种队列友好的方法可以实现与链表的 getFirst 或 getLast 方法相同的目标?(如您所见,我只需要获取该对象,以便我可以开始使用与该对象相关的方法来处理其他事情)。

太感谢了!

4

1 回答 1

2

您可能想使用ConcurrentLinkedDeque,它提供getFirst()getLast()方法。

于 2012-12-08T01:54:29.003 回答