import java.util.concurrent.*;
/**
* Created by zyBourn on 15/12/25.
*/
public class Entity {
/**
* 执行器
* 用于启动并控制线程的执行
* 核心接口为Executor,包含一个execute(Runnable)用于指定被执行的线程
* ExecutorService接口用于控制线程执行和管理线程
* 预定义了如下执行器:
* ThreadPoolExecutor/ScheduledThreadPoolExecutor/ForkJoinPool
*
* Callable 与 Future
*
* Callable<V>:标识具有返回值的线程
* V:标识返回值类型
* call():执行任务
* Future<V>:表示Callable的返回值
* V:返回值类型
* get():获取返回值
*/
public static void main(String[] args) throws Exception{
ExecutorService ex= Executors.newFixedThreadPool(2);
Future<Integer> r1=ex.submit(new Mc(1, 100));
Future<Integer> r2=ex.submit(new Mc(100,10000));
System.out.println(r1.get()+":"+r2.get());
ex.shutdown();
}
}
class Mc implements Callable<Integer> {
private int begin,end;
public Mc(int begin,int end){
this.begin=begin;
this.end=end;
}
@Override
public Integer call() throws Exception {
int sum=0;
for (int i = begin; i < end; i++) {
sum +=i;
}
return sum;
}
}
转载于:https://my.oschina.net/zyBourn/blog/671825