版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/java_faep/article/details/82491110
使用Callable接口和FutureTask类创建,与之前的使用Thread类和Runnable接口的区别就是,该方式会返回线程执行的返回值。
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.FutureTask;
public class MyThread implements Callable<String>{
@Override
public String call() throws Exception {
for (int i = 0; i < 10; i++) {
if(i == 9)
return "执行完毕...";
}
return "执行失败";
}
public static void main(String[] args) {
Callable<String> cb = new MyThread();
FutureTask<String> ft = new FutureTask<>(cb);
new Thread(ft).start();
try {
String ret = ft.get();// 线程执行返回值
System.out.println(ret);
} catch (InterruptedException e) {
e.printStackTrace();
} catch (ExecutionException e) {
e.printStackTrace();
}
}
}
输出结果:执行完毕...