谷歌Guava服务教程或示例?

12

是否有特定的示例或教程突出了Google Guava的Service API的使用?对于我的场景,用户需要同时运行多个任务或一个接一个地运行(一个完成,下一个开始)。用户将启动一个任务(服务),在未来的某个时间点停止,而Guava的Service API似乎符合我的需求。我正在寻找一个展示实现以入门的教程或示例。


这篇文章也是一个重复的内容:是否有教程和资源来解释guava-libraries的所有组件? - CubeJockey
1个回答

11

我认为我们最接近的东西是这个页面上的维基百科。


好的,那就简单地继承 AbstractExecutionThreadService,像这样:public class UniqueTask extends AbstractExecutionThreadService,那么它就会运行在自己的线程上了?所以我不需要创建 new Thread() 因为 start() 会自动为我创建一个线程?那我该如何获取它的当前状态呢? - KJW
它确实会启动自己的线程;你可以在http://docs.guava-libraries.googlecode.com/git-history/release/javadoc/src-html/com/google/common/util/concurrent/AbstractExecutionThreadService.html#line.122 上看到它。它的状态,就像任何Service的状态一样,可以通过调用它的Service.state()方法来查询。 - Louis Wasserman
那我是不是要将Service的实例保存在一个临时的Map中,然后如果我想通过引用临时Map来停止特定的Service呢?还是有一个内部记录所有当前运行的Service以及如何找到和停止特定Service的机制? - KJW
如果您有多个需要跟踪的服务,那么您将需要自己进行跟踪 - 这时使用 Map 可以是一个不错的解决方案。您是否期望服务持续运行? - Louis Wasserman
是的,我只是用一个唯一键将每个正在运行的实例保存在Map中以引用它。 - KJW
我发现这个链接对我很有用,希望对其他寻求更多细节的人也有帮助。 https://kgilmersden.wordpress.com/2014/03/01/on-the-composition-of-small-java-programs/ - jackrabb1t

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接