JDK 中Future模式使用
- JDK 中Future模式的基本结构如下:
其中Future接口相当于订单或契约,拿着她可以取到买的Mac Pro,也就是可以取到真实数据。RunnableFuture继承了Future和Runnable两个接口,其中run方法用用于构造真实数据。她有一个具体的实现FutureTask类。FutureTask会调用Callable接口完成实际的数据组装工作。
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模式使用相关推荐
- Java多线程编程中Future模式的详解
转载自 https://www.cnblogs.com/winkey4986/p/6203225.html Java多线程编程中,常用的多线程设计模式包括:Future模式.Master-Worker ...
- Future模式详解
1 Future详解 1.1 Future模式 Future模式是多线程开发中常见的设计模式,它的核心思想是异步调用.对于Future模式来说,它无法立即返回你需要的数据,但是它会返回一个契约,将来你 ...
- 【并发编程】Future模式及JDK中的实现
本文讲解Java中Future模式的使用,文章也发布在了公号(点击查看),欢迎交流. 1.1.Future模式是什么 先简单举个例子介绍,当我们平时写一个函数,函数里的语句一行行同步执行,如果某一行执 ...
- JAVA 拾遗 --Future 模式与 Promise 模式
JAVA 拾遗 --Future 模式与 Promise 模式 写这篇文章的动机,是缘起于微信闲聊群的一场讨论,粗略整理下,主要涉及了以下几个具体的问题: 同步,异步,阻塞,非阻塞的关联及区别. JA ...
- Future 模式与 Promise 模式
这篇文章主要涉及了以下几个具体的问题: 同步,异步,阻塞,非阻塞的关联及区别. JAVA 中有 callback 调用吗? jdk 包中的 Future 怎么用? Future 模式和 Promise ...
- Java程序性能优化 读书笔记(十)并行设计模式:Future模式
转载:Java多线程编程中Future模式的详解<转> 参考:葛一鸣,Java程序性能优化.清华大学出版社. 随着多核时代的到来,CPU的并行能力有了很大的提升.在这种背景下,传统的串行程 ...
- java将从键盘输入的时间格式化_java 时间格式化中的模式字母
java日期格式化中的模式字母有特定的意义,由于没有注意,今天在做工程的时候导致出现了奇怪的日期: 错误写法如下: 然而得到了错误的结果: 正确写法如下: 这样就得到了正确的结果 mm指的是分钟,MM ...
- 学习多线程中的 Future 模式一篇文章就够了 !!!
文章目录 一.Future 模式 二.Future模式的主要角色 三.Future模式的简单实现 四.JDK中的Future模式 五.Guava对Future模式的支持 一.Future 模式 Fut ...
- 阿里技术专家加多:Java异步编程实战之基于JDK中的Future实现异步编程 | 文末赠书...
正文共:14244 字 8 图 预计阅读时间: 36 分钟 本节内容摘自<Java异步编程实战>中的一小节. 一.前言 本节主要讲解如何使用JDK中的Future实现异步编程,这包含如何使 ...
最新文章
- 生成sql 脚本没有索引
- maven私服nexus搭建(windows)
- java list 比较_Java中List的五种去重方法及效率对比,你都用对了吗?
- 上传jar包到nexus私服
- 统计指定目录下的视频时长
- Future和Promise
- ubuntu14.04 安装php5-fpm
- select count(*) ,count() , select *
- Java实现分页的几种方式
- 单片机c语言如何精确延时,单片机C语言精确延时值的计算
- Android 的窗口管理系统 (View, Canvas, WindowManager)
- 多御安全浏览器安卓版迎来重大更新:新增分享二维码功能
- Android 基于Message的进程间通信 Messenger完全解析
- 0805,0603,1206这些封装名字的由来
- 百万投资血本无归,细数外汇资金盘《云腾科技》的八宗罪
- 计算机左下角文档,基本操作 单击考试系统界面左下角上的Windows资源管理器图标(3页)-原创力文档...
- android 自动获取短信验证码
- MATLAB中用imfilter()对图像进行相关或卷积运算前一定要用tofloat()或im2double()将数据类型转换为浮点型
- PDF Fixer Pro(pdf文件修复工具)官方中文版V1.3 | 修PDF什么软件最好用? | pdf文件损坏了怎么修复?
- Mac还是Win?告诉你哪些人适合买Mac!