**
线程池的应用之线程的第三种实现方法
**
package com.fenqing.Thread;
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;
public class d08_callable {
public static void main(String[] args) throws InterruptedException, ExecutionException {
ExecutorService pool=Executors.newFixedThreadPool(2); //创建线程池
Future<Integer> f1=pool.submit(new mycall2(20)); //将线程放进池子里
Future<Integer> f2=pool.submit(new mycall2(10));
System.out.println(f1.get());
System.out.println(f2.get());
pool.shutdown(); //关闭线程池
}
}
class mycall2 implements Callable<Integer>{ //创建线程的第三种方式
private int num;
public mycall2(int num){
this.num=num;
}
@Override //重写call()方法
public Integer call() throws Exception { //返回值类型与泛型相同
int sum=0;
for(int i=1;i<=num;i++){
sum+=i;
}
return sum;
}
}