使用Spring Boot和执行程序的异步操作

问题描述 投票:1回答:1

我想了解我使用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-boot java-8 executor
1个回答
0
投票

这两个直接来自Spring的链接可能为您的问题提供了足够的答案。

[基本上,带有https://spring.io/guides/gs/async-method/的带注释的方法被认为是异步方法,应返回@Async或其规格或Future。该方法在从指定的执行程序服务的线程池(void)中获取的线程中运行,该线程池通常以bean的形式提供:

@Async("specificTaskExecutor")
© www.soinside.com 2019 - 2024. All rights reserved.