在开发中有时需要线程池,系统默认的线程池使用不当会出现的性能问题,所以很多时候有用户自己定义需要的线程池,下面是定义线程池的代码:
1,线程池定义
package com.xxx.yyy.kkk;
import com.alibaba.ttl.threadpool.TtlExecutors;
import com.springframework.context.annotation.Bean;
import com.springframework.context.annotation.Configuration;
import com.springframework.core.task.AsyncTaskExecutor;
import com.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
import java.util.concurrent.*;
@Configuration
public class ThreadPoolConfig {
/**
* 自定义用户线程池,
* 注意:如果线程中业务处理需要用到登录用户信息,
* 该方法可以在异步多线程中共享登录用户信息
*/
@Bean("asyncExecutor01")
public Executor asyncExecutor01(){
ExecutorService executor = Executors.newFixedThreadPool(8);
return TtlExecutors.getTtlExecutorService(executor);
}
/**
* 自定义用户线程池,
* 注意:避免系统默认的线程池出现的性能问题
* 该方法无法在多个异步多线程中共享登录用户信息
*/
@Bean("asyncExecutor02")
public Executor