zoukankan      html  css  js  c++  java
  • Future模式

    让run方法有结果??

    Future可以拿到异步执行任务的返回值。

    • allAsList:对多个ListenableFuture的合并,返回一个当所有Future成功时返回多个Future返回值组成的List对象。注:当其中一个Future失败或者取消的时候,将会进入失败或者取消。
    • successfulAsList:和allAsList相似,唯一差别是对于失败或取消的Future返回值用null代替。不会进入失败或者取消流程。
    • immediateFuture/immediateCancelledFuture: 立即返回一个待返回值的ListenableFuture。

    主要接口为ListenableFuture,并借助于Futures静态扩展。

    继承至Future的ListenableFuture,允许我们添加回调函数在线程运算完成时返回值或者方法执行完成立即返回。

    对ListenableFuture添加回调函数:

    Futures.addCallback(ListenableFuture<V>, FutureCallback<V>, Executor)

    http://blog.51cto.com/lavasoft/115112 51CTO


    提交到线程池(不知道什么时候执行但一定会执行)
    ListenableFuture<HotelDetailModel> task = executorService.submit(new HotelDetailTask(hotelDetailParam));

    添加回调的意思就是指定任务执行后要做的事情(执行成功怎么怎么样,执行失败怎么怎么样)
    // 添加回调, 将接口放回的LowestPriceBo 放入共享的list中
    Futures.addCallback(task, new FutureCallback<HotelDetailModel>() {
    @Override
    public void onSuccess(HotelDetailModel result) {
    if (result != null) {
    for (PriceInfoModel item : result.getPriceInfos()) {
    tempPriceList.add(item);
    }
    }
    }

    @Override
    public void onFailure(Throwable t) {

    }
    });
     
    新生的小心情
  • 相关阅读:
    ACE_TASK学习
    tomcat:8005端口启动失败的解决办法
    centos7下安装jdk8
    解决github下载慢的一种方法
    page
    数据库
    做jar
    mvc:annotation-driven
    web.xml
    jsp九大内置对象el11内置对象
  • 原文地址:https://www.cnblogs.com/jianmianruxin/p/8276629.html
Copyright © 2011-2022 走看看