Home | 简体中文 | 繁体中文 | 杂文 | Github | 知乎专栏 | Facebook | Linkedin | Youtube | 打赏(Donations) | About
知乎专栏

第 37 章 Spring boot with Async

目录

37.1. Callable 实现异步
37.2. WebAsyncTask 实现异步
37.3. DeferredResult 实现异步返回结果
37.4. 带有返回值的异步任务
37.4.1. Future
37.4.2. CompletableFuture
37.5. 默认简单线程池 SimpleAsyncTaskExecutor
37.5.1. 配置线程池
37.5.2. @Service/@Component 中异步执行
37.5.3. applicationTaskExecutor
37.6. ThreadPoolTaskExecutor 自定义线程池
37.6.1. 最简单的配置
37.6.2. 队列
37.6.3. 定义多个线程池
37.6.4. 实现 AsyncConfigurer 接口方式创建自定义连接池
37.6.5. 继承 AsyncConfigurerSupport 创建自定义连接池
37.6.6. 生产环境完整代码 @Bean 注入方式
37.6.7. 通过 @Bean 覆盖掉 SimpleAsyncTaskExecutor
37.7. 自定义线程池 ThreadPoolExecutor
37.7.1. ThreadPoolExecutor
37.7.2. 注入自定义线程池bean
37.8. 设置线程名称
37.9. 线程池监控
37.10. 注意事项

37.1. Callable 实现异步

		
@GetMapping("/email")
public Callable<String> order() {
    System.out.println("主线程开始:" + Thread.currentThread().getName());
    Callable<String> result = () -> {
        System.out.println("副线程开始:" + Thread.currentThread().getName());
        Thread.sleep(1000);
        System.out.println("副线程返回:" + Thread.currentThread().getName());
        return "success";
    };

    System.out.println("主线程返回:" + Thread.currentThread().getName());
    return result;
}