我有一个包含大约40个活动的系统,每个活动都调用服务或执行某些计算。这个系统是用Java编写的。目前所有这些活动都是顺序执行的,整个过程需要大约2-3秒钟。我正在尝试优化系统并尝试减少延迟。我注意到一些活动具有数据依赖性,而另一些则是独立的。我正在尝试使这些活动并行运行,同时也保持具有数据依赖性的活动的顺序。例如,假设按照以下顺序顺序执行活动'A'到'F':
A->B->C->D->E->F (Activities)
1 2 3 4 5 6 (Time Units)
假设由 A 产生的数据被 E 使用,由 B 产生的数据被 F 使用,而其余的活动不依赖于任何其他数据。我可以按照以下顺序并行运行这些活动,而不是顺序运行它们:
A->E
B->F
C
D
1 2 (Time)
因此,系统应该能够在2个时间单位内完成整个过程,而不是6个时间单位。有没有任何开源的Java框架可以用来处理这样的工作流,并且一旦数据可用就可以无缝地执行活动?