1. 首页
  2. 编程面试题
  3. Java
  4. 并发多线程

线程的返回值如何获取?



通过实现Callable接口,FutureTask可以获取线程的返回值


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

class MyThread implements Callable {
    @Override
    public String call() throws Exception {
        for (int i = 0; i < 10; i++) {
            System.out.println("不要彩礼好吗" + i);
        }
        //返回值就表示线程运行完毕之后的结果
        return "好的";
    }
}
public class MyCallable {
    public static void main(String[] args) throws ExecutionException, InterruptedException {
        //线程开启之后需要执行里面的call方法
        MyThread mc = new MyThread();

        //可以获取线程执行完毕之后的结果.也可以作为参数传递给Thread对象
        FutureTask ft = new FutureTask<>(mc);

        //创建线程对象
        Thread t1 = new Thread(ft);

        //开启线程
        t1.start();

        String s = ft.get();
        System.out.println(s);
    }
}

不要彩礼好吗0
不要彩礼好吗1
不要彩礼好吗2
不要彩礼好吗3
不要彩礼好吗4
不要彩礼好吗5
不要彩礼好吗6
不要彩礼好吗7
不要彩礼好吗8
不要彩礼好吗9
好的          // 线程返回值

发布者:admin,如若转载,请注明出处:https://ai1024.vip/38350.html

QR code
//