Callable接口

 Java 5.0 在 java.util.concurrent 提供了一个新的创建执行
  线程的方式:Callable 接口

 Callable 接口类似于 Runnable,两者都是为那些其实例可
  能被另一个线程执行的类设计的。但是 Runnable 不会返
  回结果,并且无法抛出经过检查的异常。

 Callable 需要依赖FutureTask ,FutureTask 也可以用作闭锁

创建执行线程的方法有四种:

1、继承Thread类或者创建线程类

2、通过实现Runable接口创建线程类

3、通过Callable接口

4、通过线程池创建线程

相对于Runable接口的不同:

可以使用泛型,方法可以有返回值没并且可以抛出异常

实例:

public class TestCallabel {public static void main(String[] args) {ThreadDemoCallable tc = new ThreadDemoCallable();//此时的使用方式有些不同//1、需要FutureTask实现类的支持,用于接收运算结果 FutureTask<Integer> result = new FutureTask<>(tc);new Thread(result).start();//2、接收运算的结果//注意:只有上述的线程之后下方的代码才会执行----闭锁try {Integer sum = result.get();System.out.println(sum);} catch (InterruptedException e) {e.printStackTrace();} catch (ExecutionException e) {e.printStackTrace();}
}}//可以使用泛型
class ThreadDemoCallable implements Callable<Integer>{@Overridepublic Integer call() throws Exception {//计算整合int sum = 0;for(int i = 0;i <10;i++){sum +=i;}return sum;}
}

效率高

可以实现和闭锁一样的实现功能

转载于:https://www.cnblogs.com/Mrchengs/p/10793688.html

5、JUC--实现 Callable 接口相关推荐

  1. JUC之Callable接口

    Callable 创建线程有四种方式: 继承Thread类 实现Runnable接口 Callable接口 线程池 前两种前面说过了, Runnable接口是比较常用的, 因为在Java中继承是很重要 ...

  2. 【JUC】Callable接口

    Callable接口的使用 //比较两个接口 //实现Runnable接口 class MyThread1 implements Runnable {@Overridepublic void run( ...

  3. JUC并发编程之Callable接口、JUC三大辅助类

    目录 8. Callable接口 8.1 创建线程的多种方式 8.2 概述 8.3 用Callable接口创建Thred线程 8.4 小结(重点) 9. JUC 三大辅助类 9.1 概述 9.2 减少 ...

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

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

  5. 实现多线程的方式之实现Callable接口

    package com.hls.juc; import java.util.concurrent.Callable;import java.util.concurrent.ExecutionExcep ...

  6. 7、Callable接口

    7.1.Calledable接口与Runnable接口的区别 是否有返回值 Calledable 有返回值:Runnable无返回值 是否抛出异常 Calledable 会抛出异常:Runnable不 ...

  7. java.util.concurrent.Callable 接口 源码

    2019独角兽企业重金招聘Python工程师标准>>> 线程池相关 源码: package java.util.concurrent;@FunctionalInterface pub ...

  8. Java多线程之Callable接口的实现

    import java.util.concurrent.Callable; import java.util.concurrent.ExecutionException; import java.ut ...

  9. 多线程——实现Callable接口

    前两篇博客(多线程--继承Thread类.多线程--实现Runnable接口 )介绍了java使用线程的两种方法.这篇博客继续介绍第三种方法--实现Callable接口. 先说一下Runnable和C ...

  10. 【Android 异步操作】FutureTask 分析 ( Future 接口解析 | Runnable 接口解析 | Callable 接口解析 )

    文章目录 一.Future 接口 1.Future 接口简介 2.取消任务方法 3.Future 接口源码注释 二.Callable 接口 三.Runnable 接口 上一篇博客 [Android 异 ...

最新文章

  1. 哇塞!给 IDEA 换个酷炫的主题
  2. GreenPlum查看表和数据库大小
  3. C++实践参考——数组类运算的实现
  4. mongodb $unwind 聚合管道
  5. c# MEF框架(三 导出类的方法和属性)
  6. java weblogic多数据源,039 在weblogic下部署jndi的多数据源
  7. 联通eSIM卡哪些城市可以开通办理
  8. 沃达丰V1210刷机教程
  9. mysql Navicat for MySQL 安装和破解(完美)
  10. EndNote X9导入论文投稿的期刊参考文献格式
  11. C#读写西门子PLC数据
  12. 信息流广告投放分析实战案例!
  13. Linux性能分析命令
  14. 范莎学院 计算机,申请范莎学院
  15. 计算机科学和交互设计,交互设计(超越人机交互原书第5版)/计算机科学丛书
  16. SpringBoot开发常用技术这些你知道吗???
  17. NO.90——京东用户购买意向预测之数据预处理
  18. MySQL 8.0初体验
  19. Hackergame 2020
  20. 华为机试java_华为java机试面试题目大全

热门文章

  1. 030_jdbc-mysql事务
  2. 063_object标签
  3. 模板格式丢失_公司法人私章证明丢失应该怎么办,需要补办吗?
  4. mips 内存 linux,MIPS 在linux中的内存映射
  5. Java中继承、接口、多态的作用详解(纯理论)
  6. 存储器的分配与回收算法实现_垃圾内存回收算法
  7. 实现位数超过32bit的整数的加减乘除运算_Excel的加减乘除已经不再是你想象的加减乘除...
  8. php调用shell执行scp,Shell中使用scp命令实现文件上传代码
  9. java paysign_微信支付签名算法java版本-其他地方都可通用
  10. c++求矩阵的秩_一篇文章搞定矩阵相关概念及意义通俗解释汇总