// 提交Runnable任务 Future<?> submit(Runnable task); // 提交Callable任务 <T> Future<T> submit(Callable<T> task); // 提交Runnable任务及结果引用 <T> Future<T> submit(Runnable task, T result);
Future有如下方法:
// 取消任务 boolean cancel( boolean mayInterruptIfRunning); // 判断任务是否已取消 boolean isCancelled(); // 判断任务是否已结束 boolean isDone(); // 获得任务执行结果(会阻塞住) get(); // 获得任务执行结果,支持超时(会阻塞住) get(long timeout, TimeUnit unit);
还有FutureTask:
FutureTask(Callable<V> callable); FutureTask(Runnable runnable, V result); // 创建FutureTask FutureTask<Integer> futureTask = new FutureTask<>(()-> 1+2); // 创建线程池 ExecutorService es = Executors.newCachedThreadPool(); // 提交FutureTask es.submit(futureTask); // 获取计算结果 Integer result = futureTask.get(); // 创建FutureTask FutureTask<Integer> futureTask = new FutureTask<>(()-> 1+2); // 创建并启动线程 Thread T1 = new Thread(futureTask); T1.start(); // 获取计算结果 Integer result = futureTask.get();
原创文章,作者:geekgao,如若转载,请注明出处:https://www.geekgao.cn/archives/2768