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

Posted Lamfai

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了02027_线程池练习:返回两个数相加的结果相关的知识,希望对你有一定的参考价值。

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接口实现类

 

以上是关于02027_线程池练习:返回两个数相加的结果的主要内容,如果未能解决你的问题,请参考以下文章

2_两数相加

java求两个数组相加,所得值返回另一个数组。

leetCode_2.两数相加

Python中的运算符

两数相加

Java并发计算线程池最佳线程数