public static ListeningExecutorService EXECUTOR_SERVICE = MoreExecutors.listeningDecorator(Executors.newFixedThreadPool(10)); public static void exec(final FutureService objService, final Object... args) { // 异步处理 ListenableFuture<Object> explosion = EXECUTOR_SERVICE.submit( new Callable<Object>() { public Object call() { Object o = null; try { o = objService.handler(args); } catch (Exception e) { log.error(e, "异步错误"); } return o; } }); Futures.addCallback(explosion, new FutureCallback<Object>() { @Override public void onSuccess(Object o) { // TODO 成功处理 objService.onSuccess(o, args); } @Override public void onFailure(Throwable throwable) { // TODO 失败处理 objService.onFailure(throwable, args); } }); }
这段代码可以 可以当场一个工具类,把需要执行的异步操作包装成一个类(FutureService)传进来。
public interface FutureService { /** * 执行的方法 * * @param args * @return */ Object handler(Object... args); /** * 成功后执行 * * @param result 执行的结果 * @param args 传递参数(执行方法中的args) */ void onSuccess(Object result, Object... args); /** * 失败后执行 * * @param args 传递参数(执行方法中的args) * @param throwable */ void onFailure(Throwable throwable, Object... args); }
将 需要异步执行的动作继承这个借口。将需要执行的代码
InfFuture.exec(auditDTService, impcompanyId,auditImport.getId());
一个异步的工具类 可以直接放在代码里面用。基于 guava 的 ListenableFuture的异步调用 Futures.addcallback(future,new Futurecallback) 来处理回掉
相关推荐
Guava 是一个由 Google 开发并维护的 Java 库,它提供了许多实用工具类和集合框架的增强功能,极大地丰富了 Java 平台的标准库。Guava 的目标是解决 Java 开发人员在日常工作中遇到的各种常见问题,提高开发效率和...
Google Guava是Google开发的一个开源Java库,它包含了一系列高级且实用的集合类、缓存机制、并发工具、字符串处理、I/O工具等,极大地提升了Java开发者的工作效率。Guava的目标是通过提供一系列现代实用工具,帮助...
总结起来,Guava 22.0是一个功能强大的Java库,它的各种工具和组件极大地提高了开发效率,优化了代码质量。通过深入理解并合理运用Guava,开发者能够构建出更加健壮、高效的应用程序。在实际开发中,Guava不仅适用于...
3. **并发编程支持**:Guava提供了实用的并发工具类,如ListenableFuture、Service和CountDownLatch等,它们简化了多线程环境下的编程,同时增强了同步和异步操作的控制。 4. **函数式编程**:Guava引入了函数式...
Guava是Google开发的一个Java库,它包含许多Google核心库中的高级集合、缓存、原生类型支持、并发包、字符串处理、I/O等工具类。版本33.0.0是Guava的一个更新,提供了最新的功能改进和错误修复。在深入探讨Guava常用...
Guava是Google开发的一个Java库,它提供了许多高级和实用的集合框架、缓存机制、并发工具、字符串处理函数以及I/O工具等。Guava API文档详细地介绍了这个库的各种功能,帮助开发者更好地理解和使用Guava。 1. 集合...
Google Guava 是一个开源库,为Java开发人员提供了一组核心库,包括集合、缓存、并发工具、I/O工具、字符串处理、实用方法等。这个官方教程主要针对Guava库的使用进行详细介绍,帮助开发者更有效地利用Guava来优化...
其次,Guava的缓存机制(Cache)是一个强大的功能,可以帮助开发者构建高效的缓存系统。它支持自动加载、过期策略、大小限制等功能,使得在内存管理中能更好地平衡性能和资源消耗。例如,我们可以使用LoadingCache来...
Google Guava是一个由Google开发并维护的开源Java库,它为Java开发者提供了许多实用的工具类和集合框架,极大地简化了常见的编程任务。这个框架包含了多个模块,如基础(base)、缓存(cache)、I/O(io)以及并发...
Guava是Google开发的一个核心库,它为Java程序员提供了许多实用功能,如集合、缓存、并发工具、原生类型支持、字符串处理、I/O等。"guava-18.jar"是Guava库的一个特定版本,即版本18。这个JAR文件包含了Guava在18...
Strings: 一个非常非常有用的字符串工具类: 提供 splitting,joining, padding 等操作。 七. Primitives: 扩展 JDK 中未提供的对原生类型(如int、char等)的操作, 包括某些类型的无符号的变量。 八. ...
以下是一个简单的测试示例,展示了如何使用Guava的Futures工具: ```java @Test public void should_test_furture() throws Exception { ListeningExecutorService service = MoreExecutors.listeningDecorator...
谷歌Guava库是一个广泛使用的Java库,它提供了许多核心库的实用工具类,包括集合、缓存、并发、I/O、字符串处理、泛型 utilities、错误处理、网络、数学运算以及类加载器支持等多个方面。Guava的目标是使Java编程...
Guava 是 Google 开源的一个 Java 工具包,包含了丰富的工具类和库,极大地扩展了 Java 的功能。这里我们详细探讨一下 Guava 的主要知识点。 1. **RateLimiter 和 Semaphore 的区别** - `RateLimiter` 主要用于...
7. **事件总线**:EventBus是Guava的一个轻量级事件发布/订阅系统,可以用于组件之间的解耦通信。 8. **流(Stream)**:虽然Java 8引入了Stream API,但Guava早在之前就提供了FluentIterable,提供类似的功能,允许...
谷歌的Guava库是Java开发中的一个强大工具集,它为开发者提供了许多实用的功能,显著提高了代码的效率和可读性。Guava 18.0 版本是该库的一个重要里程碑,它包含了丰富的API和性能优化。下面将详细讨论Guava的主要...
4. **并发支持**:Guava提供了强大的并发工具,如`ListenableFuture`、`Service`接口等,使得异步编程变得更加简单。 5. **字符串处理**:通过`Strings`、`CharMatcher`等工具类,Guava简化了字符串操作的复杂度。 6...
Guava是Google开发的一个核心库,它为Java程序员提供了许多实用工具类,极大地简化了常见的编程任务。在标题"guava-19.0"中,"19.0"代表的是Guava库的一个特定版本,这通常意味着该版本包含了自上一个版本以来的更新...
《Google Guava官方教程 v1.1》是一个详细介绍Google Guava库的资源,该库是Google为Java开发人员提供的一套强大的工具集。Guava旨在提高开发效率,提供许多实用的功能,包括集合、缓存、并发工具、原生类型支持、...
Guava是Google开发的一个Java库,它提供了许多基础工具,如集合、缓存、原生类型支持、并发库、字符串处理、I/O等。Guava的目的是为了简化Java开发,提高代码质量和性能。本篇文章将深入探讨Guava的学习,包括最佳...