Spring @Async 与可完成的未来运行异步

BOT*_*Jr. 4 java spring asynchronous spring-boot

我可能做错了什么。所以,我有春天@Async

假设我有这段代码

@Async("poolbeanname") 
Function () {
     // some code 
}
Run Code Online (Sandbox Code Playgroud)

我还有一个,假设我有这段代码

@Async("poolbeanname") 
Function () {
     CompletableFuture.runAsync{ new Runnable ()...} 
} 
Run Code Online (Sandbox Code Playgroud)

现在,通过第二个代码,我可以看到,生成了一些线程,但第一种方法似乎没有生成多个线程?

use*_*900 5

要启用使用,@Async您应该使用@EnableAsync

\n\n
\n

让\xe2\x80\x99s 首先通过 Java 配置 \xe2\x80\x93 启用异步处理,只需将 @EnableAsync 添加到配置类即可:

\n\n
@Configuration\n@EnableAsync\npublic class SpringAsyncConfig { ... }\n
Run Code Online (Sandbox Code Playgroud)\n
\n\n

并且您必须使用public从其他类调用的方法:

\n\n
\n

@Async 有两个限制:

\n\n
    \n
  • 它必须仅应用于公共方法

  • \n
  • 自调用 \xe2\x80\x93 从同一个类 \xe2\x80\x93 中调用异步方法 \xe2\x80\x93 不会\xe2\x80\x99t 工作

  • \n
\n
\n