我正在尝试使用Java Spring创建一种体系结构,该体系结构将具有多个后台进程,这些进程将同时运行,并在它们从不同的ZMQ套接字到达时侦听并提取信息。
我不确定执行此操作的最佳方法。现在,我在TaskPoolExecutor中使用@Async批注,但是@Async函数似乎正在阻止堆栈中的下一个函数调用。
所以我的问题是 1)@Async函数会阻止堆栈中的下一个函数调用吗?否则它将在新线程中触发该功能,并继续在当前线程中执行该功能。 2)有什么方法可以赋予每个线程相等的计算能力时间片。 3)还有更好的方法吗?
谢谢!
答案 0 :(得分:1)
CompletableFuture
用于异步计算的API。我有
最近写了一篇有关@Async
问题以及如何解决问题的博客文章
可以使用CompletableFuture
:Demystifying the Magic
of Spring: @Async解决。