Runnable是执行工作的独立线程,但是它不返回任何值。如果你希望线程在完成时能够返回一个值,那么可以实现Callable接口而不是Runnable接口。在Java SE5中引入的Callable是一种具有类型参数的泛型,它的类型参数表示的是从方法call()(而不是run())中返回的值,并且必须使用ExecutorService.submit()方法调用它。
public class ResulttThread implements Callable<String> {
private int id;
public ResulttThread(int id) {
this.id = id;
}
@Override
public String call() throws Exception {
return "The result id is " + id;
}
}
Future<String> future;
ExecutorService mService = Executors.newCachedThreadPool();
for (int i = 0; i < 5; i++) {
future = mService.submit(new ResulttThread(i));
System.out.println(future.get());
}
版权声明:本文为博主原创文章,未经博主允许不得转载。
原文地址:http://blog.csdn.net/pengkv/article/details/46858815