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的使用
最新推荐文章于 2021-11-18 16:14:38 发布