1. JDK 中Future模式的基本结构如下:

其中Future接口相当于订单或契约,拿着她可以取到买的Mac Pro,也就是可以取到真实数据。RunnableFuture继承了Future和Runnable两个接口,其中run方法用用于构造真实数据。她有一个具体的实现FutureTask类。FutureTask会调用Callable接口完成实际的数据组装工作。

  1. JDK内置的Future基本使用

    /**
    * Created with IntelliJ IDEA.
    * User: zyg
    * Date: 2019/2/2
    * Time: 下午2:41
    * Description:使用callable实例构造一个FutureTask实例,并将其提交给线程池
    */
    public class RealData implements Callable<String> {
    private String para;public RealData(String para) {this.para = para;
    }//实现Callable接口,其call方法会构造真实数据并返回
    public String call() throws Exception {StringBuffer sb = new StringBuffer();for (int i = 0; i < 10; i++) {Thread.sleep(200);sb.append(para);}return sb.toString();
    }public static void main(String[] args) {//使用Callable接口实例构造FutureTask实例FutureTask future = new FutureTask(new RealData("大幂幂"));//定义线程池ExecutorService exec = Executors.newFixedThreadPool(1);//使用现场异步处理真实数据exec.submit(future);System.out.println("请求完毕,可以接着做其他事情...");try {Thread.sleep(2000);} catch (InterruptedException e) {e.printStackTrace();}//业务处理完毕,现在假设需要真实数据,使用Callbale接口的get方法,获取真实数据//如果真实数据还没准备好则阻塞,这个过程在模拟Future模式的时候已实现try {System.out.println("数据{}," + future.get());} catch (InterruptedException e) {e.printStackTrace();} catch (ExecutionException e) {e.printStackTrace();}exec.shutdown();
    }
    }

转载于:https://blog.51cto.com/3265857/2348679

JDK 中Future模式使用相关推荐

  1. Java多线程编程中Future模式的详解

    转载自 https://www.cnblogs.com/winkey4986/p/6203225.html Java多线程编程中,常用的多线程设计模式包括:Future模式.Master-Worker ...

  2. Future模式详解

    1 Future详解 1.1 Future模式 Future模式是多线程开发中常见的设计模式,它的核心思想是异步调用.对于Future模式来说,它无法立即返回你需要的数据,但是它会返回一个契约,将来你 ...

  3. 【并发编程】Future模式及JDK中的实现

    本文讲解Java中Future模式的使用,文章也发布在了公号(点击查看),欢迎交流. 1.1.Future模式是什么 先简单举个例子介绍,当我们平时写一个函数,函数里的语句一行行同步执行,如果某一行执 ...

  4. JAVA 拾遗 --Future 模式与 Promise 模式

    JAVA 拾遗 --Future 模式与 Promise 模式 写这篇文章的动机,是缘起于微信闲聊群的一场讨论,粗略整理下,主要涉及了以下几个具体的问题: 同步,异步,阻塞,非阻塞的关联及区别. JA ...

  5. Future 模式与 Promise 模式

    这篇文章主要涉及了以下几个具体的问题: 同步,异步,阻塞,非阻塞的关联及区别. JAVA 中有 callback 调用吗? jdk 包中的 Future 怎么用? Future 模式和 Promise ...

  6. Java程序性能优化 读书笔记(十)并行设计模式:Future模式

    转载:Java多线程编程中Future模式的详解<转> 参考:葛一鸣,Java程序性能优化.清华大学出版社. 随着多核时代的到来,CPU的并行能力有了很大的提升.在这种背景下,传统的串行程 ...

  7. java将从键盘输入的时间格式化_java 时间格式化中的模式字母

    java日期格式化中的模式字母有特定的意义,由于没有注意,今天在做工程的时候导致出现了奇怪的日期: 错误写法如下: 然而得到了错误的结果: 正确写法如下: 这样就得到了正确的结果 mm指的是分钟,MM ...

  8. 学习多线程中的 Future 模式一篇文章就够了 !!!

    文章目录 一.Future 模式 二.Future模式的主要角色 三.Future模式的简单实现 四.JDK中的Future模式 五.Guava对Future模式的支持 一.Future 模式 Fut ...

  9. 阿里技术专家加多:Java异步编程实战之基于JDK中的Future实现异步编程 | 文末赠书...

    正文共:14244 字 8 图 预计阅读时间: 36 分钟 本节内容摘自<Java异步编程实战>中的一小节. 一.前言 本节主要讲解如何使用JDK中的Future实现异步编程,这包含如何使 ...

最新文章

  1. 生成sql 脚本没有索引
  2. maven私服nexus搭建(windows)
  3. java list 比较_Java中List的五种去重方法及效率对比,你都用对了吗?
  4. 上传jar包到nexus私服
  5. 统计指定目录下的视频时长
  6. Future和Promise
  7. ubuntu14.04 安装php5-fpm
  8. select count(*) ,count() , select *
  9. Java实现分页的几种方式
  10. 单片机c语言如何精确延时,单片机C语言精确延时值的计算
  11. Android 的窗口管理系统 (View, Canvas, WindowManager)
  12. 多御安全浏览器安卓版迎来重大更新:新增分享二维码功能
  13. Android 基于Message的进程间通信 Messenger完全解析
  14. 0805,0603,1206这些封装名字的由来
  15. 百万投资血本无归,细数外汇资金盘《云腾科技》的八宗罪
  16. 计算机左下角文档,基本操作 单击考试系统界面左下角上的Windows资源管理器图标(3页)-原创力文档...
  17. android 自动获取短信验证码
  18. MATLAB中用imfilter()对图像进行相关或卷积运算前一定要用tofloat()或im2double()将数据类型转换为浮点型
  19. PDF Fixer Pro(pdf文件修复工具)官方中文版V1.3 | 修PDF什么软件最好用? | pdf文件损坏了怎么修复?
  20. Mac还是Win?告诉你哪些人适合买Mac!

热门文章

  1. python中的reg_如何在python中从注册表读取字符串格式的Reg_二进制类型值
  2. jquery给div赋值
  3. Freemarker判断对象是否为空的用法
  4. es支持的操作及性能
  5. ubuntu下rar文件解压后文件名乱码的解决方案
  6. 使用tar进行磁带备份的命令汇总
  7. 一招定乾坤(最佳买点)系列
  8. SCPPO(二十九):测算过程中问题的解决总结(续)
  9. [数]数学系列预习-补水题ver.
  10. springmvc和json整合配置方法