【发布时间】:2012-01-27 09:39:36
【问题描述】:
我有一个家庭作业,需要我学习如何使用 Guava 并发库。
在任务中,我有几个线程池,每个线程池都由一个单独的对象控制。
每个池都有几个执行简单任务的工作线程(主要是通过使用Thread.sleep(long) 模拟做事),所有这些简单任务都存储在一个模拟留言板的容器对象中。
每个简单的任务都有一个其他任务的依赖列表,在所有这些任务都完成之前它不能被执行。
如何使用 ListenableFuture 和 Futures.chain() 从 Guava 库中受益?
我在网上到处搜索了一些广泛的示例代码,但没有找到任何我理解如何使用的东西。
【问题讨论】:
-
你读过
ListenableFutureJavaDocs吗?他们是一个很好的起点。 -
谁在布置番石榴作业?另外,我应该开始在 Guava wiki 中添加对这些工具的解释。
-
@LouisWasserman 我的大学决定挑战我们。这实际上是为了加分,但我需要那些加分。对我的成绩有好处。无论如何,我已经阅读并理解了 ListenableFuture API,我不明白的是 Futures.chain() 的使用以及它如何在所描述的场景中帮助我
-
很高兴看到 Guava 被用于这样的额外学分作业,而且听起来很有用。它似乎强调了我猜想是
ListenableFuture及其相关实用程序的主要动机。 -
从 Guava 版本 14(我目前使用的版本)开始,
chain不再是库的一部分。已替换为Futures.transform
标签: concurrency guava future