【发布时间】:2011-09-19 11:52:01
【问题描述】:
我在 Java 中实现了我所谓的“可折叠队列”,即 ExecutorService 使用的 LinkedBlockingQueue。这个想法是每个任务作为一个唯一的 id,如果在队列中,而另一个任务通过相同的 id 提交,它不会被添加到队列中。 Java 代码如下所示:
public final class FoldablePricingQueue extends LinkedBlockingQueue<Runnable> {
@Override
public boolean offer(final Runnable runnable) {
if (contains(runnable)) {
return true; // rejected, but true not to throw an exception
} else {
return super.offer(runnable);
}
}
}
线程必须预先启动,但这是一个小细节。我有一个实现 Runnable 的抽象类,它需要一个唯一的 id ......这是传入的那个
我想使用 Scala 和 Akka(Actor)实现相同的逻辑。 我需要访问邮箱,我想我需要覆盖!方法并检查事件的邮箱..以前有人这样做过吗?
【问题讨论】:
-
在我刚刚发布此内容时阅读此内容:stackoverflow.com/questions/2721337/…