1.创建线程池对象
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
public class ClosingScheduler {
private static ThreadPoolTaskExecutor executor = getThreadPool();
public static ThreadPoolTaskExecutor getThreadPool() {
ThreadPoolTaskExecutor threadPoolTaskExecutor = new ThreadPoolTaskExecutor();
//最小线程数
threadPoolTaskExecutor.setCorePoolSize(500);
//最大线程数
threadPoolTaskExecutor.setMaxPoolSize(2000);
//空闲线程存活时间
threadPoolTaskExecutor.setKeepAliveSeconds(200);
//队列中最大线程
threadPoolTaskExecutor.setQueueCapacity(2000);
//初始化
threadPoolTaskExecutor.initialize();
return threadPoolTaskExecutor;
}
}
2.创建一个任务类
public class MessageTask implements Runnable {
//
private Map<String,Object> data;
// 构造方法,传入你需要处理的数据
public MessageTask(Map<String,Object> data) {
this.data = data;
}
@Override
public void run() {
System.out.println(Thread.currentThread().getName());
}
}
3.新建任务对象,并加入线程池进行处理
public static void main(String[] args) {
for (int i = 1;i < 20;i++) {
Map<String, Object> data = new HashMap<>();
data.put("second",i);
MessageTask closeTask = new MessageTask(data);
executor.execute(closeTask);
}
}