2011-12-26 9 views
1

私はクラスの外側から(メソッドを使用して)オブジェクトで満たされたプライベートスタックSを持っています。 ListenableFutureはスタックを読み込み、そこからObjectを取得する必要があります。 スタックが空であれば、オブジェクトがスタックに挿入されてからそれを取得するのを待つ必要があります。私はどのようにこれを実装するか分からない。Guava ListenableFuture <Object>はスタックからの情報をどのように待つことができますか?

私の考えは、ListenableFutureにWait/Notifyを使用することでしたが、これは正しいロジック(Guavaで動作します)ですか? その他のオプションはありますか?事前に

おかげで、 ガイ

答えて

7

ListenableFutureとグアバは、このすべてに来ることはありません。これを行う方法は、LinkedBlockingDequeでスタックを実装し、スタックに要素を追加するメソッドを持ち、addFirstを使用し、pollFirst(long、TimeUnit)を使用して、オブジェクトが挿入されるまでの指定された時間待機します。

ライブラリサポートで同じジョブを実行できるかどうかをwaitやnotifyなどの低レベルの並行性ツールを使用しないでください。

関連する問題