Java Spring异步和分时

Java Spring异步和分时,java,spring,multithreading,concurrency,Java,Spring,Multithreading,Concurrency,我正在尝试使用JavaSpring创建一个体系结构,它将有几个后台进程同时运行,在信息从不同的ZMQ套接字到达时侦听和提取信息 我不确定最好的方法。现在,我正在使用带有TaskPoolExecutor的@Async注释,但是@Async函数似乎阻止了堆栈中的下一个函数调用 所以我的问题是 1) @Async函数会阻止堆栈中的下一个函数调用吗?或者它会在新线程中启动该函数,并在当前线程中继续执行这些函数。 2) 有没有办法给每个线程一个相等的计算能力时间片。 3) 有没有更好的方法 谢谢 @Asy

我正在尝试使用JavaSpring创建一个体系结构,它将有几个后台进程同时运行,在信息从不同的ZMQ套接字到达时侦听和提取信息

我不确定最好的方法。现在,我正在使用带有TaskPoolExecutor的@Async注释,但是@Async函数似乎阻止了堆栈中的下一个函数调用

所以我的问题是 1) @Async函数会阻止堆栈中的下一个函数调用吗?或者它会在新线程中启动该函数,并在当前线程中继续执行这些函数。 2) 有没有办法给每个线程一个相等的计算能力时间片。 3) 有没有更好的方法

谢谢

  • @Async将使用 指定执行人
  • 无法控制操作系统资源 专用于线程
  • Java有一个非常方便的应用程序
    CompletableFuture
    API,用于异步计算。我已经 最近写了一篇关于
    @Async
    的问题以及如何解决的博客文章 可以使用
    CompletableFuture
    解决这些问题:

  • 回答得好,投了赞成票。但不确定你的博客文章涵盖了哪些例外情况。似乎可以说该方法在单独的线程上执行,调用方的线程继续执行。@NathanHughes,仔细检查,没有异常,编辑了答案。谢谢:)