美文网首页
Future 接收异步调用的返回值

Future 接收异步调用的返回值

作者: 良人与我 | 来源:发表于2019-03-24 08:19 被阅读0次

java 从1.5 版本后提供 Executors 类可以方便的创建线程池。
在异步调用时候,就是通过线程池里的线程去执行任务。
那如何获取到执行的结果呢 - Future
通过代码来看如何获取返回值

public class ExecutorsTest {
    private static final Logger logger = LoggerFactory.getLogger (ExecutorsTest.class);
    private ExecutorService executor = Executors.newSingleThreadExecutor();

    public static void main(String[] args) {
        ExecutorsTest executorsTest = new ExecutorsTest ();
        logger.info ("start test");
        executorsTest.sendMsg ("hello river");
        executorsTest.sendMsg ("I am fine ,thank you");
    }

    public void sendMsg(String msg){
    
        Future<String> future = executor.submit(new CallableRequest(msg));
        try {
            System.out.println(future.get());
        } catch (InterruptedException e) {
            e.printStackTrace();
        } catch (ExecutionException e) {
            e.printStackTrace();
        }
    }

    class CallableRequest implements Callable<String> {

        private String msg ;

        public CallableRequest(String msg) {
            super();
            this.msg = msg;
        }

        @Override
        public String call() {
            return  "message : " + msg ;
        }
    }

}

执行结果

message : hello river
message : I am fine ,thank you

通过Future的get方法获取到了,异步执行线程方法的返回值。

相关文章

  • Future 接收异步调用的返回值

    java 从1.5 版本后提供 Executors 类可以方便的创建线程池。在异步调用时候,就是通过线程池里的线程...

  • async的使用

    async是创建一个异步线程 future可以用来接收这个线程的入口函数的返回值我们使用result.get()...

  • 异步加载组件FutureBuilder

    FutureBuilder( future: _getBackInfo(context),//接收请求返回值的地方...

  • flutter笔记之stream学习

    stream类似future,只不过future是接收一次的异步返回结果,stream可以接收多次。主要是为了处理...

  • Java多线程--Future及FutureTask

    1、Future线程是异步的,所以不可能直接从别的线程中得到函数返回值。Futrue可以监视目标线程调用call的...

  • java多线程

    实现多线程的方式 实现Runnable(无返回值) 实现Callable(Future接收返回值) 继承Threa...

  • Dart简介5--Stream

    说明 Stream 也是用于接收异步事件数据,和 Future 不同的是,它可以接收多个异步操作的结果(成功或失败...

  • SOFA 源码分析 — 调用方式

    前言 SOFARPC 提供了多种调用方式满足不同的场景。 例如,同步阻塞调用;异步 future 调用,Callb...

  • Java中的Future模式

    Future模式 核心思想是异步调用,在java中内置了对Future模式的实现,主要就是Future接口、Cal...

  • 2018-10-23 step

    C++ 11 几个特性的整理 std::future - std::promise 解决的问题 返回值的异步获取:...

网友评论

      本文标题:Future 接收异步调用的返回值

      本文链接:https://www.haomeiwen.com/subject/tmoevqtx.html