get():獲取任務執行結果,如果任務還沒完成(state<=COMPLETING),則會阻塞等待直到任務執行完成;如果任務被取消,則會 拋出CancellationException異常;如果任務執行過程發生異常,則會拋出ExecutionException異常;如果阻塞等待過程中被中斷, 則會拋出InterruptedException異常。 isDone():判斷任務是否已經完成,如果完成則返回true,否則返回false。任務執行過程中發生異常、任務被取消也屬於任務 已完成(state != NEW)。 isCancelled():判斷任務是否被取消,如果任務完成前被取消,則返回true,否則返回false(state >= CANCELLED)。 /** * 演示Callable Future FutureTask的使用 */ public class UserFuture { private static class UseCallable implements Callable<Integer> { private int sum; @Override public Integer call(){ System.out.println("Callable子線程開始計算"); for(int i = 0; i < 101; i++) { sum = sum + i; } System.out.println("Callable子線程計算完成,結果 = " + sum); return sum; } } public static void main(String[] args) throws InterruptedException, ExecutionException { UseCallable useCallable = new UseCallable(); FutureTask<Integer> futureTask = new FutureTask<Integer>(useCallable); new Thread(futureTask).start(); System.out.println("Get UseCallable result = "+ futureTask.get()); }
演示Callable Future FutureTask的使用
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.