public class Test { public static void main(String[] args) { ExecutorService executor = Executors.newCachedThreadPool(); Task task = new Task(); Future<Integer> result = executor.submit(task); executor.shutdown(); try { Thread.sleep(1000); } catch (InterruptedException e1) { e1.printStackTrace(); } System.out.println("主线程在执行任务"); try { System.out.println("task运行结果"+result.get()); } catch (InterruptedException e) { e.printStackTrace(); } catch (ExecutionException e) { e.printStackTrace(); } System.out.println("所有任务执行完毕"); } } class Task implements Callable<Integer>{ @Override public Integer call() throws Exception { System.out.println("子线程在进行计算"); Thread.sleep(3000); int sum = 0; for(int i=0;i<100;i++) sum += i; return sum; } }
相关推荐
目录: 简介 Callable接口的基本用法 ...2.3 获取任务执行结果 Future接口的使用 3.1 获取任务执行状态 3.2 取消任务的执行 Callable与Runnable的对比 Callable的异常处理 Callable的应用场景 最佳实践与注意事项
这两个任务被封装成Callable对象并返回一个Future对象,用于表示异步计算的结果。 在主线程中,我们通过调用response1.get()和response2.get()方法来获取异步计算的结果。由于这两个方法都是阻塞的(即等待异步计算...
全部是txt格式的,容量小,以下内容为其中之一: 5.0新特性: 泛型: ... 运行Callable任务可拿到一个Future对象,通过Future对象可了解任务执行情况,可取消任务的执行,还可获取任务执行的结果。
获取线程执行结果的原理:以 ThreadPoolExecutor 为例(实现 ExecutorService 接口), 其 submit() 方法提交任务, 返回 一个 FutureTask 实例,这个实例 outcome 成员变量用于存储线程的执行结果, state 成员变量...
6.3.2 携带结果的任务Callable与Future103 6.3.3 示例:使用Future实现页面渲染器104 6.3.4 在异构任务并行化中存在的局限106 6.3.5 CompletionService:Executor与BlockingQueue106 6.3.6 示例:使用...
11 线程——Callable和Future 16. 12 线程——任务执行架构 16. 13 线程——锁Lock 16. 14 线程——条件Condition 16. 15 线程——Semaphore 16. 16 线程——CountDownLatch 16. 17 线程...
9.1.3 使用BufferedReader获取键盘输入 318 9.2 系统相关 319 9.2.1 System类 319 9.2.2 Runtime类 321 9.3 常用类 322 9.3.1 Object类 322 9.3.2 String、StringBuffer和StringBuilder类 322 9.3.3 Math类 ...
17.2.3 Callable与Future接口的具体使用 385 17.3 资源的封锁 386 17.3.1 Lock接口与ReentrantLock类简介 386 17.3.2 ReentrantLock锁的具体使用 387 17.3.3 ReadWriteLock接口与ReentrantReadWriteLock类...
1. 目录 1. 2. 目录 .........................................................................................................................................................1 JVM ........................
1. 目录 1. 2. 目录 .........................................................................................................................................................1 JVM .........................