本文共 1181 字,大约阅读时间需要 3 分钟。
以下是一个使用 CompletionService 的 Java 代码示例,展示了如何为 Runnable 任务设置默认值返回。
public class CompletionServiceDemo { public static void main(String[] args) throws ExecutionException, InterruptedException { ExecutorService pool = Executors.newFixedThreadPool(3); ExecutorCompletionService completionService = new ExecutorCompletionService<>(pool); Future future = completionService.submit( new Runnable() { @Override public void run() { try { TimeUnit.SECONDS.sleep(5); } catch (InterruptedException e) { e.printStackTrace(); } } }, "我是默认值" ); System.out.println(future.get()); pool.shutdown(); }} 运行上述代码,您会看到以下结果:
我是默认值
从运行结果可以看出,CompletionService 的主要作用是为 Runnable 类型的任务设置一个默认值返回。这使得在 futures 不完成之前,或者 future 失败时,可以立即获取一个预定义的默认值。
这种方式在那些任务可能需要等待后续操作完成(例如异步操作或阻塞操作)而无法立即返回结果的情况下非常有用。通过设置默认值,可以避免程序在等待 future 完成时陷入卡顿状态。
此外,CompletionService 还提供了许多有用的功能,例如处理多个 futures 的异常情况,以及在 futures 完成时进行后续处理。
转载地址:http://ljjp.baihongyu.com/