2011-12-26 2 views
1

J'ai une pile privée S qui est remplie d'objets de l'extérieur de la classe (en utilisant des méthodes). Un ListenableFuture doit lire la pile et en récupérer un objet, mais si la pile est vide, elle doit attendre qu'un objet soit inséré dans la pile, puis le récupérer. Je ne suis pas sûr de savoir comment mettre en œuvre cela.Comment un Guava ListenableFuture <Object> peut-il attendre des informations d'une pile?

Mon idée était d'utiliser Wait/Notify pour le ListenableFuture mais cette logique est-elle correcte (travailler avec Guava)? Quelles autres options ai-je?

Merci à l'avance, Guy

Répondre

7

ListenableFuture et Goyave ne viennent pas dans ce tout. Pour ce faire, implémentez la pile avec LinkedBlockingDeque, utilisez la méthode pour ajouter des éléments à la pile et ajoutez addFirst, puis utilisez pollFirst (long, TimeUnit) pour attendre la durée spécifiée pour qu'un objet soit inséré. Ne jamais utiliser des outils de concurrence de bas niveau comme wait et notifier si vous pouvez faire le même travail avec le support de la bibliothèque.

Questions connexes