异步线程

Posted meadow

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了异步线程相关的知识,希望对你有一定的参考价值。

    @Bean("taskModuleExecutor")
    Executor getCrawler1(){
        ThreadPoolTaskExecutor threadPoolTaskExecutor = new ThreadPoolTaskExecutor();
        threadPoolTaskExecutor.setCorePoolSize(3);
        threadPoolTaskExecutor.setMaxPoolSize(10);
        threadPoolTaskExecutor.setQueueCapacity(200);
        threadPoolTaskExecutor.setThreadNamePrefix("task-concurrent-work");
       // threadPoolTaskExecutor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy());
        threadPoolTaskExecutor.initialize();
        return threadPoolTaskExecutor;
    }

@Async("taskModuleExecutor")
public void asyncTest(){
//加上Async表示基于主线程,新开一个线程。
单元测试中遇到主线程完成,但是子线程没有完成,会被中断,服务发布启动不会有这种情况,验证测试可以注释掉@Async("taskModuleExecutor"),看子线程是否会被中断
}

@EnableAsync
public class ServiceBootstrap(){
}

以上是关于异步线程的主要内容,如果未能解决你的问题,请参考以下文章

线程池和异步线程

Spring Boot中异步线程池@Async详解

异步和多线程

求一个java 单线程 实现异步处理的例子

多线程异步操作导致异步线程获取不到主线程的request信息

线程与异步