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

第 60 章 Spring boot with Async

目录

60.1. Callable 实现异步
60.2. WebAsyncTask 实现异步
60.3. DeferredResult 实现异步返回结果
60.4. 带有返回值的异步任务
60.4.1. Future
60.4.2. CompletableFuture
60.5. 默认简单线程池 SimpleAsyncTaskExecutor
60.5.1. 配置线程池
60.5.2. @Service/@Component 中异步执行
60.5.3. applicationTaskExecutor
60.6. ThreadPoolTaskExecutor 自定义线程池
60.6.1. 最简单的配置
60.6.2. 队列
60.6.3. 定义多个线程池
60.6.4. 实现 AsyncConfigurer 接口方式创建自定义连接池
60.6.5. 继承 AsyncConfigurerSupport 创建自定义连接池
60.6.6. 生产环境完整代码 @Bean 注入方式
60.6.7. 通过 @Bean 覆盖掉 SimpleAsyncTaskExecutor
60.7. 自定义线程池 ThreadPoolExecutor
60.7.1. ThreadPoolExecutor
60.7.2. 注入自定义线程池bean
60.8. 设置线程名称
60.9. 线程池监控
60.10. 注意事项

60.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;
}