Guava ListenableFuture <object>如何等待来自堆栈的信息?</object>

时间:2011-12-26 14:27:23

标签: multithreading guava wait future

我有一个私有的Stack S,它填充了类的外部对象(使用方法)。 一个ListenableFuture应该读取堆栈并从中检索一个对象, 但如果堆栈为空,它应该等待一个对象插入堆栈然后检索它。我不确定如何实现这一点。

我的想法是对ListenableFuture使用Wait / Notify,但这是正确的逻辑(与Guava一起工作)? 我还有其他选择吗?

提前致谢, 盖

1 个答案:

答案 0 :(得分:7)

ListenableFuture和Guava根本没有进入这个领域。执行此操作的方法是使用LinkedBlockingDeque实现堆栈,使用addFirst添加元素到堆栈的方法,并使用pollFirst(long,TimeUnit)等待指定的时间来插入对象

如果您可以使用库支持执行相同的工作,请不要使用等级和通知等低级并发工具。