来自不同线程池的期货的回调功能

时间:2017-07-18 19:01:50

标签: java multithreading concurrency asynccallback completable-future

我目前正在开发一个功能,我需要在之后进行回调,假设private线程数已经完成(或失败)。在'n'个子任务中,'n'个任务将被提交到一个特定的线程池,我将可以访问所有这些n-1个未来。

在完成所有期货后,我都没有问题。我打算将原子监视器传递给每个n-1任务,并根据一些计数启动回调。

现在我处理其他单线程。基本上这个线程是一个不同的执行工作流程。根据启动这些n-1任务/线程后的功能,我将单独调用另一个应用程序(执行一些长时间运行的任务)并退出。一旦其他应用程序完成其计算,它将通过不同的终点推送其结果。

因此,虽然单独的服务正在推动其结果,但我必须保持某种上下文来将所有这些子任务结合在一起。我可以使用单独的哈希映射或本地缓存(guava缓存)使用唯一ID并使用原子监视器(在所有子任务之间共享)来解决这个问题。

在此之前,我想知道这种方法的优缺点。此外,如果您能够以优雅的方式提出某种设计模式或框架来实现此工作流程,我将非常感激。

0 个答案:

没有答案