public class Test01 {public static void main(String[] args) throws ExecutionException, InterruptedException {//new Thread().start();MyTherad myTherad = new MyTherad();//适配类FutureTask futureTask = new FutureTask(myTherad);new Thread(futureTask,"A").start();new Thread(futureTask,"B").start(); //结果会被缓冲,提高效率Integer o = (Integer) futureTask.get(); //获取Callable的返回结果 但可能会产生阻塞,或者使用异步通信System.out.println(o);}
}
class MyTherad implements Callable<Integer>{@Overridepublic Integer call() throws Exception {System.out.println("call();");return 1024;}
}

Callable 接口控制线程相关推荐

  1. Java用Callable接口创建线程

     一.概述  使用Callable接口创建线程能够返回数据.与Runnable接口创建线程的方式有点类似,也是需要通过Thread类来创建线程.由于Thread类的构造函数中没有Callable接口, ...

  2. 【Java】线程创建方式:Callable接口 / 使用线程池

    面试题:创建多线程有有哪几种方式? 回答:4种. 实现Runnable接口(重写Run方法) 继承Thread类 实现Callable接口(重写Call方法,与Run不同的是,Call方法有返回值) ...

  3. Java多线程(6)--Callable接口创建线程

    与使用Runnable相比, Callable功能更强大些 ①相比run()方法,可以有返回值 ②方法可以抛出异常 ③支持泛型的返回值 ④需要借助FutureTask类,可以获取返回结果 Future ...

  4. 【多线程】采用Callable接口创建线程

    前言 java5开始,提供了Callable接口,是Runable接口的增强版.同样用Call()方法作为线程的执行体,增强了之前的run()方法.因为call方法可以有返回值,也可以声明抛出异常. ...

  5. Callable接口-创建线程的第三种方法

    Callable和Runable相比 //Runnable和Callable区别 //1.Callable带返回值 //2.run()不会抛异常,call()会抛异常 //3.实现的接口不同 pack ...

  6. java callable接口_使用Callable接口实现线程

    执行Callable方式,需要FutureTask实现类的支持,用于接收运算结果 package com.gwolf; import java.util.concurrent.Callable; im ...

  7. 【JUC并发编程07】Callable接口

    文章目录 7 Callable接口 7.1 Callable接口创建线程 7.2 FutureTask 7 Callable接口 创建线程的多种方式: 继承Thread类 实现Runnable接口 C ...

  8. Java多线程 - Runnable接口和Callable接口的区别

    文章目录 1. Runnable接口实例 2. Callable接口原理 3. Callnable接口实例 4. FutureTask是什么? 5. 线程池中 submit() 和 execute() ...

  9. 简单理解Callable接口

    Callable接口: Callable,新启线程的一种方式,返回结果并且可能抛出异常的任务,在前面的新启线程的文章中用过,但是没有具体讲解 优点: 可以获取线程的执行结果,也称为返回值 通过与Fut ...

  10. Callable 接口实现java 的多线程

    java 中创建多线程最常见的是继承Thread 的子类重写run() 方法,还有就是实现Runnable 接口 我们最好使用实现了Runnable 接口的方法原因有两点: ①因为java 的单继承的 ...

最新文章

  1. bootstrap使用总结
  2. 每天首次登陆记录设备信息
  3. 用户画像,如何驱动产品链路优化?
  4. 科技、体育、创业,三者碰撞是真的野!
  5. java死循环_java小白关于while死循环时处理办法的一发求助帖
  6. AQS理解之二,自己设计一个锁
  7. express+mongodb+vue实现增删改查-全栈之路
  8. Gym - 101986F Pizza Delivery(最短路+DAG必经边)
  9. 基本的排序算法php,php四种基础排序算法
  10. MSSOAP与WebService
  11. fatal exception java_java.lang.IllegalStateExceptio
  12. 裘宗燕:C/C++ 语言中的表达式求值
  13. high performance web sites 阅读小记
  14. 【ACL2020】使用问题图生成解决multi-hop复杂KBQA
  15. vant-ui 有赞ui官网打不开?
  16. css实现白光划过效果
  17. Notes真的无处不在
  18. Wechat + unbuntu
  19. 如何使用VSCode开发Qt项目?
  20. 如何扩展Linux系统分区大小

热门文章

  1. PHP non-thread-safe和thread-safe这两个版本的区别
  2. dubbo-Instantiation of bean failed; nested exception is java.lang.ExceptionInInitializerError
  3. python 教程 第十章、 输入/输出
  4. 北京地铁5号线地图(线路图、站名、实拍pp)
  5. 文件的读写学习笔记和我的第一个网页
  6. silverlight中datagrid数据到处excel
  7. windows进程中的内存结构
  8. 处理顶点——使用顶点缓冲和索引缓冲将顶点和索引保存在显存中
  9. Enterprise Architect 中文快速入门
  10. 拓端tecdat|R语言广义线性模型索赔频率预测:过度分散、风险暴露数和树状图可视化