/**
* 创建人:LYY
* 创建时间:2022/4/28
* 多线程创建方式三:
* 1. 实现Callable接口
* 2. 重写call方法
* 3. 调用时创建future 将callable接口对象传递给构造器
* 4 创建新线程(Thread) 将future对象传递给构造器
* 5 启动线程方法
* 6 future对象.get()方法获取callable接口call方法返回值
*/
public class CallableThree implements Callable {
@Override
public Object call() throws Exception {
int sum = 0;
for (int i = 0; i < 100; i++) {
sum += i;
}
return sum;
}
}
class CallableThreeTest{
public static void main(String[] args) {
// 创建callable接口实现类对象
CallableThree callableThree = new CallableThree();
// 创建future接口类实现对象 将callable接口对象传递过去
FutureTask futureTask = new FutureTask(callableThree);
// 创建新线程 并执行
Thread thread = new Thread(futureTask);
thread.start();
// 获取callable线程方法中的返回值
try {
int sum = (int) futureTask.get();
System.out.println("1-100之和=" + sum);
} catch (InterruptedException e) {
e.printStackTrace();
} catch (ExecutionException e) {
e.printStackTrace();
}
}
}