1、要求:通过线程池中的线程对象,使用Callable接口完成两个数求和操作。

2、代码实现:

  (1)Callable接口实现类

 1 import java.util.concurrent.Callable;
 2
 3 public class MyCallable implements Callable<Integer> {
 4     // 成员变量
 5     int x = 5;
 6     int y = 3;
 7
 8     // 构造方法
 9     public MyCallable() {
10     }
11
12     public MyCallable(int x, int y) {
13         this.x = x;
14         this.y = y;
15     }
16
17     @Override
18     public Integer call() throws Exception {
19         return x + y;
20     }
21 }

  (2)测试类

 1 import java.util.concurrent.ExecutionException;
 2 import java.util.concurrent.ExecutorService;
 3 import java.util.concurrent.Executors;
 4 import java.util.concurrent.Future;
 5
 6 public class ThreadPoolDemo {
 7     public static void main(String[] args) throws InterruptedException,
 8             ExecutionException {
 9         // 创建线程池对象
10         ExecutorService threadPool = Executors.newFixedThreadPool(2);
11
12         // 创建一个Callable接口子类对象
13         // MyCallable c = new MyCallable();
14         MyCallable c = new MyCallable(100, 200);
15         MyCallable c2 = new MyCallable(10, 20);
16
17         // 获取线程池中的线程,调用Callable接口子类对象中的call()方法, 完成求和操作
18         // <Integer> Future<Integer> submit(Callable<Integer> task)
19         // Future 结果对象
20         Future<Integer> result = threadPool.submit(c);
21         // 此 Future 的 get 方法所返回的结果类型
22         Integer sum = result.get();
23         System.out.println("sum=" + sum);
24
25         // 再演示
26         result = threadPool.submit(c2);
27         sum = result.get();
28         System.out.println("sum=" + sum);
29         // 关闭线程池(可以不关闭)
30
31     }
32 }

3、运行结果:

  

  

l  Callable接口实现类

转载于:https://www.cnblogs.com/gzdlh/p/8099279.html

02027_线程池练习:返回两个数相加的结果相关推荐

  1. 求数组最大数,该数为数组中某两个数相加

    题目: 百度笔试:在一个正整数集合S中,找出一个最大数C,使得C=A+B,其中A和B也是S种的元素. 思想: 首先,我们将数组从小到大进行快速排序.其次: 1.将最后一个数设为最大数设定为S: 2.用 ...

  2. 【LeetCode-面试算法经典-Java实现】【002-Add Two Numbers (单链表表示的两个数相加)】...

    [002-Add Two Numbers (单链表表示的两个数相加)] 原题 You are given two linked lists representing two non-negative ...

  3. mysql 两个数相加_LeetCode 01两数之和02两数相加

    LeetCode01两数之和 题目描述:给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标. 你可以假设每种输入只会对应一个答案 ...

  4. CUDA学习(三)之使用GPU进行两个数相加

    在CPU上定义两个数并赋值,然后使用GPU核函数将两个数相加并返回到CPU,在CPU上显示 #include "cuda_runtime.h" #include "dev ...

  5. python怎么设编程两个数相加时_黄哥Python, LeetCode 第二题两数相加代码

    来源力扣​leetcode-cn.com 给出两个 非空 的链表用来表示两个非负的整数.其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字. 如果,我们将这两个数相 ...

  6. 数组两个整数相加 c语言,作业帮:给定一个整数数组,找出其中两个数相加等于目标值(去重set)...

    题目描述 给定一个整数数组,找出其中两个数相加等于目标值 输入 [1,3,5,7,9,11] 10 输出 1,9 3,7 代码: import java.util.HashMap; import ja ...

  7. 在O(N)时间内求解 正数数组中 两个数相加的 最大值

    一,问题描述 给定一个正数数组arr(即数组元素全是正数),找出该数组中,两个元素相加的最大值,其中被加数的下标大于加数的下标.由加法运算的可逆性,j >i 这个条件可以去掉. 即求出: max ...

  8. 作业帮:给定一个整数数组,找出其中两个数相加等于目标值(去重set)

    题目描述 给定一个整数数组,找出其中两个数相加等于目标值输入 [1,3,5,7,9,11] 10输出 1,9 3,7 代码: import java.util.HashMap; import java ...

  9. python每个数都可由集合中的某两个数相加而得

    python每个数都可由集合中的某两个数相加而得(这两个数可以相同) 问题表述 思路 代码 运行结果 问题表述 有一个自然数集合,其中最小的数是1,最大的数是100.这个集合中的数除了1之外,每个数都 ...

最新文章

  1. JVM:垃圾回收相关概念
  2. r语言ggplot怎么把多个维度数据合并在一个图中表示_R语言作图——Histogram
  3. 铁打的Python连续3年第一,PHP跌出前十:IEEE Spectrum 2019编程语言排行榜出炉
  4. 嵌入式成长轨迹11 【嵌入式环境及基础】【Linux shell深入】【深入讨论】
  5. RedisManager使用手册(六)-- 监控功能介绍
  6. 信号回勾产生的原因_电力电缆故障原因及常用检测方法
  7. 初识Mysql(part15)--我需要知道的4条Mysql语句之操作表
  8. SQl常用语句总结(持续更新……)
  9. 使用BUCK进行iOS项目打包
  10. 新基建来了!5G边缘计算如何展现勃勃生机?
  11. 云图说 | 揭秘云硬盘高可靠性的秘密,速来围观
  12. 问题1:UIView不会被释放--block中如果有self的话会造成循环引用
  13. 面试官最爱的 volatile 关键字,这些问题你都搞懂了没?
  14. 接口测试工具--Apipost不同脚本的作用
  15. VS2005配置WinCE 5.0环境
  16. 阿里巴巴移动技术 2021 年终盘点
  17. linux c第四天———gcc、gdb、指针、大小端存储
  18. 把 汇编代码翻译成二进制机器代码
  19. embarrass的用法和搭配_comfortable的用法和搭配
  20. 单片机电脑计算机键盘设计,客制pc小键盘,CH552单片机HID键盘,电脑多媒体小键盘...

热门文章

  1. ROS学习笔记_创建工作空间(一)
  2. JS中try....catch
  3. 纹理过滤模式中的Bilinear、Trilinear以及Anistropic Filtering
  4. Metro Win8风格的按钮(Filp翻转)
  5. Ubuntu 14.04安装mysql
  6. QT5 QT4--LNK2019 无法解析的外部符号
  7. 求最小子数组之二维篇
  8. 十条不错的编程观点(转载)
  9. argument在python里什么意思_python add_argument() 的使用方法
  10. hdu 5045 费用流