springboot启动类(Application.java)中配置线程池大小

1
2
3
4
5
6
7
8
9
@Bean(name = "crawlExecutorPool")
public ExecutorService crawlExecutorPool() {
// 获取Java虚拟机的可用的处理器数,最佳线程个数,处理器数*2。根据实际情况调整
int curSystemThreads = Runtime.getRuntime().availableProcessors() * 2;
System.out.println("------------系统可用线程池个数:" + curSystemThreads);
// 创建线程池
ExecutorService pool = Executors.newFixedThreadPool(curSystemThreads);
return pool;
}

使用类中注入线程池并使用

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
@Autowired
@Qualifier(value = "crawlExecutorPool")
private ExecutorService pool;

public void crawlRedisQueue() {
for (int i = 0; i < 2000000; i++) {
pool.execute(() -> {
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println(Thread.currentThread().getName() + "======定时任务执行完成======");
});
}
}

相关文章

评论系统未开启,无法评论!