我正在尝试使用以下配置来设置线程池,但是我试图了解所有配置值之间的关系:
@Bean
public Executor getAsyncExecutor() {
ThreadPoolTaskExecutor taskExecutor = new ThreadPoolTaskExecutor();
taskExecutor.setCorePoolSize(10);
taskExecutor.setMaxPoolSize(50);
taskExecutor.setQueueCapacity(100);
taskExecutor.initialize();
return taskExecutor;
}
此配置与简单配置有何不同?
Executors.newFixedThreadPool(50)
我的目标是随时支持5000
个并发请求,并将我的应用程序部署在4
个负载平衡的服务器上。如果我们假设每个线程的活动大约花费500ms
,那么我该如何为该用例选择最佳数量?