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