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

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

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 @   qi_8080  阅读(491)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示