1.概念
有返回值的线程
利用futuretask包装 ,传入thread 因为Thread只有为实现runable接口的入参,
利用future.get()获取返回值,将这个写在main线程的尾部,好让main线程和新线程同时执行,因为如果新线程未执行完,就get(),就会一直等待执行完后才会get()。
2.使用方式
实现Callable接口:
class Thread implements Callable {
@Override
public Integer call() throws Exception {
return 1;
}
}
线程创建方式:
//默认
FutureTask<Integer> futureTask1 = new FutureTask<>(new Thread());
FutureTask<Integer> futureTask2 = new FutureTask<>(()->{
//业务逻辑
return 1;
});
//创建一个线程
new Thread (futureTask1 , "name").start;