java中future 接口 异步转为同步例子

 代码如下 复制代码

import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;

public class TestFuture {
 
 public static void main(String args[]){
  System.out.println("hello world");
  
  ExecutorService es = Executors.newCachedThreadPool();
  Future fu = es.submit(new Callable(){

   @Override
   public String call() throws Exception {
    Thread.sleep(10000); // remove it if return directly , but future still works
    return "hello world";
   }
   
  });
  System.out.println("hello world1111111111");
  String result = "";
  try {
   System.out.println("hello world222222");
   result = fu.get();
   System.out.println("hello world3333333");
  } catch (InterruptedException | ExecutionException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
  System.out.println(result);
  es.shutdown(); // shutdown the executor
 }

}

时间: 2024-08-22 07:41:50

java中future 接口 异步转为同步例子的相关文章

Java中CompletableFuture处理异步超时的例子

Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言.Java 技术具有卓越的通用性.高效性.平台移植性和安全性,广泛应用于PC.数据中心.游戏控制台.科学超级计算机.移动电话和互联网,同时拥有全球最大的开发者专业社群. public void serve() throws InterruptedException, ExecutionException, TimeoutException {   final Future<Response> responseFuture = asyn

Java中Cloneable接口

原文地址:Java中Cloneable接口作者:我有一个梦 目录 预备知识 为什么要clone Object的clone以及为什么如此实现 如何clone 对clone的态度 其他的选择 和Serializable的比较 性能 预备知识 为了理解java的clone,有必要先温习以下的知识. java的类型,java的类型分为两大类,一类为primitive,如int,另一类为引用类型,如String,Object等等. java引用类型的存储,java的引用类型都是存储在堆上的. Java代码

Java中Executor接口用法总结_java

本文实例讲述了Java中Executor接口用法.分享给大家供大家参考.具体如下: 1.Java中Executor接口的定义 public interface Executor { void execute(Runnable command); } 2.Executors以下静态工厂方法创建一个线程池: a) newFixedThreadPool:创建一个定长的线程池.达到最大线程数后,线程数不再增长. 如果一个线程由于非预期Exception而结束,线程池会补充一个新的线程. b) newCa

有关java中的 接口 没有new 就可以赋值?

问题描述 有关java中的 接口 没有new 就可以赋值? 就是private Ishape=shape://Ishape为接口public shapeProc(Ishape shape){this.shape=shape:}//shapeProc 为构造函数 这为什么可以编译通过呢?小白,求指导 解决方案 shape是传进来的参数,自然是调用它的代码负责初始化.肯定有这样的代码:某实现了ISharp的类 shape = new 某实现了ISharp的类();xxx.shapeProc(shar

java序列化接口-java中序列化接口和parclable接口有什么区别和联系

问题描述 java中序列化接口和parclable接口有什么区别和联系 java中序列化接口和parclable接口有什么区别和联系 数据是存储到手机本地还是网络服务器啊 解决方案 Android中实现序列化有两个选择:一是实现Serializable接口(是JavaSE本身就支持的),一是实现Parcelable接口(是Android特有功能,效率比实现Serializable接口高效,可用于Intent数据传递,也可以用于进程间通信(IPC)).实现Serializable接口非常简单,声明

对于Java中的接口实现多继承的疑问

问题描述 目前的理解接口:Interface   的作用就是包含一些抽象方法   然后再其他类中implement接口并override这些抽象方法        感觉纯粹只为了达到统一的方法名访问而作这么个抽象方法,跟直接在类中创建这么一个方法没啥区别      如果要做到像extend那样不重写方法就能使用父类的方法,Interface还是不行啊   实现的多继承也就变成了重写多个接口中的抽象方法,没有那层继承的意义啊 解决方案 嘿嘿,看看大师们是怎么用interface的.多看看设计模式,

java中set接口使用方法详解_java

java中的set接口有如下的特点: 不允许出现重复元素: 集合中的元素位置无顺序: 有且只有一个值为null的元素. 因为java中的set接口模仿了数学上的set抽象,所以,对应的数学上set的特性为: 互异性:一个集合中,任何两个元素都认为是不相同的,即每个元素只能出现一次.无序性:一个集合中,每个元素的地位都是相同的,元素之间是无序的.集合上可以定义序关系,定义了序关系后,元素之间就可以按照序关系排序.但就集合本身的特性而言,元素之间没有必然的序.空集的性质:空集是一切集合的子集    

java中queue接口的使用详解_java

Queue接口与List.Set同一级别,都是继承了Collection接口.LinkedList实现了Queue接口.Queue接口窄化了对LinkedList的方法的访问权限(即在方法中的参数类型如果是Queue时,就完全只能访问Queue接口所定义的方法 了,而不能直接访问 LinkedList的非Queue的方法),以使得只有恰当的方法才可以使用.BlockingQueue 继承了Queue接口.  队列是一种数据结构.它有两个基本操作:在队列尾部加人一个元素,和从队列头部移除一个元素就

Java中利用接口实现回调

在 Java 支持方法指针之前,Java 接口不能提供一种实现回调的好方法.如果您习惯于传递在事件驱动编 程模型中调用的函数指针,则您会喜欢本技巧. 熟悉 MS-Windows 和 X Window System 事件驱动编程 模型的开发人员,习惯于传递在某种事件发生时调用(即"回调")的函数指针.Java 的面向对象模型目前 并不支持方法指针,这样似乎就不可能使用这种很好的机制.但我们并不是一点办法都没有! Java 的接 口支持提供了一种获得回调的等价功能的机制.其技巧就是:定义一