您的位置:首页 > 编程语言 > Java开发

Java并发-执行器Callable,Future

2016-05-15 22:20 302 查看
执行器:用于启动并控制线程的执行!核心接口为Executor,ExecutorService

一、Callable 与 Future执行器

Callable<V>:表示具有返回值的线程

V:表示返回值类型

call() : 执行任务

Future<V>: 表示Callable 的返回值

V:表示返回值类型

get() : 获取返回值

以下代码演示该执行器:

package com.executor.src;

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 Edemo {

public static void main(String[] args) throws InterruptedException, ExecutionException {
// 创建一个有两个线程的线程池
ExecutorService es = Executors.newFixedThreadPool(2);

// 创建两个任务提交给callable
Future<Integer> r1 = es.submit(new EX(1, 100));
Future<Integer> r2 = es.submit(new EX(100, 10000));

System.out.println(r1.get() + " : " + r2.get());
// 关闭执行器
es.shutdown();
}

}

class EX implements Callable<Integer>{

private int begin,end;

public EX(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;
}

}
执行结果:
4950 : 49990050
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  线程