Thread实现了Runnable接口中的run方法,可是run方法是没有返回值滴!! java
public abstract void run(); 测试
若是但愿获得线程的返回值,能够实现Callable接口,调用call 方法: spa
V call() throws Exception; 线程
这里就来分享一种实现。 对象
类之间的关系以下图所示: 接口
测试代码: get
package com.xue.gang;
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.FutureTask;
/**
* 只是测试用FutureTask中取到值
* */
public class FutureTaskRunner {
public static void main(String[] args) throws InterruptedException, ExecutionException{
/**构造可获取结构的Runable对象*/
FutureTask futureTask = new FutureTask<Object>(new Callable(){
public Object call() throws Exception{
int sum=0;
for(int i =0;i<100;i++){
sum +=i;
System.out.println("index is : " + i);
}
return sum;
}
});
/**启个线程来执行*/
Thread thread=new Thread(futureTask);
thread.start();
/**执行完了把线程中的值拿回来*/
System.out.println("执行完了把线程中的值拿回来:" + futureTask.get());
}
}
io