我想了解我使用Java和Springboot的两个代码之间的区别。它们都相等吗-
a。无需使用@Async并生成新线程/任务并提交给taskexecutorb。使用@Async以及执行者名称的人
a。
public void executeNewThread() {
Thread t = new Thread( ()->{
try {
Thread.sleep(10000);
//we are using nasa open API
fetchNasaLocInfo();
} catch (InterruptedException e) {
e.printStackTrace();
}
});
taskExecutor.execute(t);
}
b。
@Async("specificTaskExecutor")
public void executeAsync() {
try {
Thread.sleep(10000);
//we are using nasa open API
fetchNasaLocInfo();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
这两个直接来自Spring的链接可能为您的问题提供了足够的答案。
@Async
的JavaDoc@Async
[基本上,带有https://spring.io/guides/gs/async-method/的带注释的方法被认为是异步方法,应返回@Async
或其规格或Future
。该方法在从指定的执行程序服务的线程池(void
)中获取的线程中运行,该线程池通常以bean的形式提供:
@Async("specificTaskExecutor")