首先设计Async一个线程池配置类:
@Configuration public class TaskPoolConfig { @Bean("AsyncTask") @Primary public Executor taskExecutor() { ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor(); executor.setCorePoolSize(10);//核心数 executor.setMaxPoolSize(20);//最大数 executor.setQueueCapacity(200);//队列大小 executor.setKeepAliveSeconds(60); executor.setThreadNamePrefix("-TaskExecutor-"); executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy()); return executor; } }然后在需要开启多线程的方法前加上@Async注解即可
@Async("AsyncTask") public CompletableFuture<List> SelectAllUserData(){ List<User> list= userMapper.SelectAllUser(); return CompletableFuture.completedFuture(list); }!最后在启动类加上@EnableAsync 注解 ! 注意!!! 有返回值的方法记得把返回值类型修改成Future或者CompletableFuture类型,不然页面无法获取返回值。因为开启多线程后,可以允许线程先返回一个无关结果,其他耗时的操作会在后台进行。