Runnable是执行工作的独立任务,但是它不返回任何值。如果希望任务在完成的同时能够返回一个值,可以通过实现Callable接口。在JDK5.0中引入的Callable接口是一种具有类型参数的泛型,它的类型参数表示从方法call中返回的值的类型。

import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.FutureTask;public class Demo05 {public static void main(String[] args) throws ExecutionException, InterruptedException {Callable<Integer> callable = new Demo05Callable();FutureTask<Integer> task = new FutureTask<>(callable);Thread t1 = new Thread(task);t1.start();System.out.println("线程返回的值是:" + task.get());}
}class Demo05Callable implements Callable<Integer>{@Overridepublic Integer call() throws Exception {System.out.println(Thread.currentThread().getName() + "调用了callable接口的实现类");int val = (int)(Math.random() * 10);System.out.println("准备返回的值是:" + val);return val;}
}

Callable接口相关推荐

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

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

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

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

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

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

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

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

  5. 5、JUC--实现 Callable 接口

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

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

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

  7. java callable 详解_Java多线程详解(七)------Callable接口介绍

    一.与runnable接口对比 1 创建新类MyThread实现runnable接口2 class MyThread implementsRunnable{3 @Override4 public vo ...

  8. java多线程 -- 创建线程的第三者方式 实现Callable接口

    Java 5.0 在 java.util.concurrent 提供了一个新的创建执行线程的方式:Callable 接口 Callable 接口类似于 Runnable,两者都是为那些其实例可能被另一 ...

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

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

最新文章

  1. 提高工作效率-shell操作快捷键
  2. pytorch下载mnist超时解决方案
  3. Java使用线程并发库模拟弹夹装弹以及发射子弹的过程
  4. Win7下使用U盘安装linux Ubuntu16.04双系统图文教程
  5. 【渝粤题库】广东开放大学 信息安全数学基础 形成性考核 (2)
  6. c++ try catch语句_再问你一遍,你真的了解try..catch(finally)吗???
  7. 利用uiautomator2刷金币
  8. mysql如何建立索引workbench_MySQL数据库中如何正确的理解与使用索引?
  9. 个推基于Docker和Kubernetes的微服务实践
  10. 动态规划(6)——NYOJ469擅长排列的小明II*
  11. 训练代码_无需一行代码,完成模型训练和部署,这个AI工具开始公测
  12. WPF: 结束程序及关闭所有窗口
  13. Linux emacs考场配置及对拍脚本
  14. LDR_DATA_TABLE_ENTRY结构得不到完整路径?
  15. python 修改ubuntu 的ip
  16. Java-醉汉行走问题
  17. 408数据结构考研笔记!超级详细!23最新考纲
  18. W5500 dns域名解析
  19. 华为CANN训练营笔记——应用开发全流程 [5](with 代码版)
  20. Problem - 1077E - E. Thematic Contests(暴力+二分)

热门文章

  1. Ubuntu 下安装Beyond Compare 安装解决方案
  2. JS 异常: Uncaught RangeError: Maximum call stack size exceeded
  3. the Open Source Community
  4. Pocket PC 2003 SE设备仿真器网络设置
  5. 【深入理解JVM】JVM字节码指令集
  6. LuceneLucene简介
  7. servlet实现用户登录
  8. 图解JavaScript算法排序
  9. Kafka消费者APi
  10. linux新手入门必看