Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/400.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 针对来自不同线程池的未来的回调功能_Java_Multithreading_Concurrency_Asynccallback_Completable Future - Fatal编程技术网

Java 针对来自不同线程池的未来的回调功能

Java 针对来自不同线程池的未来的回调功能,java,multithreading,concurrency,asynccallback,completable-future,Java,Multithreading,Concurrency,Asynccallback,Completable Future,我目前正在开发一个功能,需要在完成(或失败)线程数之后进行回调。在'n'子任务中,n-1任务将提交到一个特定的线程池,我将有权访问所有这些n-1任务 我没有问题在所有期货交易完成后进行回调。我打算向这些n-1任务中的每一个传递一个原子监视器,并根据一些计数启动回调 现在我被困在处理另一个单线程。基本上,这个线程是一个不同的执行工作流。根据启动这些(n-1)任务/线程后的功能,我将单独调用不同的应用程序(以执行一些长时间运行的任务),然后退出。一旦另一个应用程序完成了计算,它将把结果推到另一个端点

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

我没有问题在所有期货交易完成后进行回调。我打算向这些
n-1
任务中的每一个传递一个原子监视器,并根据一些计数启动回调

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

因此,当独立服务推动其结果时,我必须维护某种上下文,将所有这些子任务组合在一起。我可以使用一个单独的hashmap或一个本地缓存(guava缓存),使用一个唯一的ID和原子监视器(在所有子任务之间共享)来解决这个问题

在此之前,我想知道这种方法的利弊。此外,如果您能提出某种设计模式或框架,以优雅的方式实现此工作流,我将不胜感激