如何获取多线程执行的返回值,多线程的第三种实现方式。

多线程的第三种实现方式主要有以下步骤。

1、创建一个类#MyCallable实现Callable接口。在泛型中指定多线程执行后要返回的数据类型

2、在MyCallable方法种重写call方法,此方法的内容,便是多线程的执行内容。类似于run方法。

3、将MyCallable对象实例化。

4、创建FutureTask<Integer>的对象并将之前实例化的MyCallable对象作为FutureTask对象的构造方法参数。

5、创建线程对象并将FutureTask作为构造方法参数传给多线程构造方法。

代码如下

创建Mycallable类

 1 public class MyCallable implements Callable<Integer> {
 2     @Override
 3     public Integer call() throws Exception {
 4         int num = 0;
 5         for (int i = 0; i <= 100; i++) {
 6             num +=i;
 7         }
 8         return num;
 9     }
10 }

主函数实现

 1 public static void main(String[] args) throws ExecutionException, InterruptedException {
 2         //创建MyCallable对象用来表示多线程要执行的任务
 3         MyCallable myCallable = new MyCallable();
 4         //创建FutureTask<Integer>对象用来管理多线程运行的结果
 5         FutureTask<Integer> future = new FutureTask<>(myCallable);
 6         //创建线程对象
 7         Thread thread = new Thread(future);
 8         //执行线程
 9         thread.start();
10 
11         //获取多线程的运行结果
12         Integer result = future.get();
13         //结果输出
14         System.out.println(result);
15         
16     }

 

posted @ 2023-06-20 23:16  qi_8080  阅读(520)  评论(0)    收藏  举报