Guava
家电修理 2023-07-16 17:23www.caominkang.com电器维修
Guava为Java并行编程Future提供了很多有用扩展,其主要接口为ListenableFuture,并借助于Futures静态扩展。
继承至Future的ListenableFuture,允许我们添加回调函数在线程运算完成时返回值或者方法执行完成立即返回。
对ListenableFuture添加回调函数
Futures.addCallback(ListenableFuture
其中 FutureCallback是一个包含onSuess(V),onFailure(Throable)的接口。
使用如
Futures.addCallback(ListenableFuture, ne FutureCallback
Guava中Futures对于Future扩展还有
- transform对于ListenableFuture的返回值进行转换。
- allAsList对多个ListenableFuture的合并,返回一个当所有Future成功时返回多个Future返回值组成的List对象。注当其中一个Future失败或者取消的时候,将会进入失败或者取消。
- suessfulAsList和allAsList相似,唯一差别是对于失败或取消的Future返回值用null代替。不会进入失败或者取消流程。
- immediateFuture/immediateCancelledFuture 立即返回一个待返回值的ListenableFuture。
- makeChecked: 将ListenableFuture 转换成CheckedFuture。CheckedFuture 是一个ListenableFuture ,其中包含了多个版本的get 方法,方法声明抛出检查异常.这样使得创建一个在执行逻辑中可以抛出异常的Future更加容易
- JdkFutureAdapters.listenInPoolThread(future): guava提供了将JDK Future转换为ListenableFuture的接口函数。
下边是一个对于Future的测试demo
@Test public void should_test_furture() thros Exception { ListeningExecutorService service = MoreExecutors.listeningDecorator(Executors.neFixedThreadPool(10)); ListenableFuture future1 = service.submit(ne Callable() { public Integer call() thros InterruptedException { Thread.sleep(1000); System.out.println("call future 1."); return 1; } }); ListenableFuture future2 = service.submit(ne Callable () { public Integer call() thros InterruptedException { Thread.sleep(1000); System.out.println("call future 2."); // thro ne RuntimeException("----call future 2."); return 2; } }); final ListenableFuture allFutures = Futures.allAsList(future1, future2); final ListenableFuture transform = Futures.transform(allFutures, ne AsyncFunction , Boolean>() { @Override public ListenableFuture apply(List
results) thros Exception { return Futures.immediateFuture(String.format("suess future:%d", results.size())); } }); Futures.addCallback(transform, ne FutureCallback
官方资料主页https://ak.so/@code.google.!/p/guava-libraries/iki/ListenableFutureExplained
空调维修
- 温岭冰箱全国统一服务热线-全国统一人工【7X2
- 荆州速热热水器维修(荆州热水器维修)
- 昆山热水器故障码5ER-昆山热水器故障码26
- 温岭洗衣机24小时服务电话—(7X24小时)登记报
- 统帅热水器售后维修服务电话—— (7X24小时)登
- 阳江中央空调统一电话热线-阳江空调官方售后电
- 乌鲁木齐阳春燃气灶厂家服务热线
- 珠海许昌集成灶售后服务电话-全国统一人工【
- 乌鲁木齐中央空调维修服务专线-乌鲁木齐中央空
- 新沂热水器故障电话码维修-新沂热水器常见故障
- 诸城壁挂炉24小时服务热线电话
- 靖江空调24小时服务电话-——售后维修中心电话
- 空调室外滴水管维修(空调室外排水管维修)
- 九江壁挂炉400全国服务电话-(7X24小时)登记报修
- 热水器故障码f.22怎么解决-热水器f0故障解决方法
- 营口热水器售后维修服务电话—— 全国统一人工