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

第 62 章 Spring boot with Async

目录

62.1. Callable 实现异步
62.2. WebAsyncTask 实现异步
62.3. DeferredResult 实现异步返回结果
62.4. 带有返回值的异步任务
62.4.1. Future
62.4.2. CompletableFuture
62.5. 默认简单线程池 SimpleAsyncTaskExecutor
62.5.1. 配置线程池
62.5.2. @Service/@Component 中异步执行
62.5.3. applicationTaskExecutor
62.6. ThreadPoolTaskExecutor 自定义线程池
62.6.1. 最简单的配置
62.6.2. 队列
62.6.3. 定义多个线程池
62.6.4. 实现 AsyncConfigurer 接口方式创建自定义连接池
62.6.5. 继承 AsyncConfigurerSupport 创建自定义连接池
62.6.6. 生产环境完整代码 @Bean 注入方式
62.6.7. 通过 @Bean 覆盖掉 SimpleAsyncTaskExecutor
62.7. 自定义线程池 ThreadPoolExecutor
62.7.1. ThreadPoolExecutor
62.7.2. 注入自定义线程池bean
62.8. 设置线程名称
62.9. 线程池监控
62.10. 注意事项

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