Callable與Future
Callable和Future,一個産生結果,一個拿到結果。
Callable接口類似于Runnable,但是Runnable不會傳回結果,并且無法抛出傳回結果的異常,而Callable功能更強大一些,被線程執行後,可以傳回值,這個傳回值可以被Future拿到,也就是說,Future可以拿到異步執行任務的傳回值。
package com.itszt.test3;
import java.util.Random;
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.FutureTask;
/**
* Callable和Future
*/
public class Test4 {
public static void main(String[] args) {
Callable<String> callable = new Callable<String>() {
@Override
public String call() throws Exception {
return new Random().nextInt(100)+"";
}
};
FutureTask<String> futureTask = new FutureTask<>(callable);
new Thread(futureTask).start();
try {
Thread.sleep(5000);
System.out.println(futureTask.get());
} catch (InterruptedException e) {
e.printStackTrace();
} catch (ExecutionException e) {
e.printStackTrace();
}
}
}
posted @ 2018-03-24 21:58 奔跑在夢想的道路上 閱讀( ...) 評論( ...) 編輯 收藏