为了账号安全,请及时绑定邮箱和手机立即绑定

CompletableFuture runAsync 与使用 Executor

CompletableFuture runAsync 与使用 Executor

慕婉清6462132 2021-08-04 17:48:07
最近我试图实现一个电子邮件服务,同时向每个用户发送电子邮件。我当前的实现电流看起来像这样:ExecutorService executor = Executors.newSingleThreadExecutor();tasks.forEach(executor::execute); // Each task sends an email to an userexecutorService.shutdown(); // Reclaim all the resources经过一番研究,我找到了一种新方法,即使用 Java 8CompletableFuture.runAsync(...)方法。使用这种方法我做了:ExecutorService executor = Executors.newSingleThreadExecutor();tasks.forEach(task -> CompletableFuture.runAsync(task, executor));executor.shutdown(); // Reclaim all resources现在我有点困惑,就正确性、可扩展性而言,解决我的问题的最佳方法是什么,以及解决我的问题的最现代/当前的方法是什么。
查看完整描述

3 回答

?
精慕HU

TA贡献1845条经验 获得超8个赞

后一种方法的优点是它为您提供了一个CompletableFuture对象,该对象可用于操作get的结果,以确保操作已完成并获取操作抛出的任何异常。

由于您似乎并不关心这些,我想直接调用 executor 就可以了。


查看完整回答
反对 回复 2021-08-04
  • 3 回答
  • 0 关注
  • 792 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信