gpt4 book ai didi

java - 延迟执行服务

转载 作者:太空宇宙 更新时间:2023-11-04 06:39:39 25 4
gpt4 key购买 nike

是否有一个 ExecutorService 允许我在请求之前提交任务而不开始执行?我正在寻找类似 ScheduledExecutorService 的东西,只不过我想手动触发执行而不依赖于固定时间延迟。

我寻找这个的原因是因为我想创建一组任务,这些任务可以递归地使用从同一组中的并行任务生成的 Future 的结果。因此,我需要首先提交所有任务才能获得一组 Future,然后才能允许任务开始执行。

最佳答案

这听起来像是 CompletableFuture 的工作

  • 将任务的第一部分作为单独的CompletableFutures
  • 触发执行
  • 然后使用 CompletableFuture.allOf(...furures)创建一个只有当所有事情都完成后才完成的障碍 future
  • 然后使用诸如 CompletableFuture.thenAccept 之类的组合器之一来安排下一部分任务在屏障 future 完成时执行
<小时/>

但更惯用的使用方法是根据前一个任务的 future 结果来链接每个下一个任务

CompletableFuture<FirstResult> firstTask = //....
CompletableFuture<SecondResult> secondTask = firstTask.thenApply(someTransformation);
CompletableFuture<Void> anotherTaks = firstTask.thenAccept(someConsumer);
CompletableFuture<ThirdResult> combined = firstTask.thenAcceptBoth(secondTask, someFunction);

关于java - 延迟执行服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24854811/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com