为什么Spring的ThreadPoolTaskExecutor会不断创建线程,直到达到核心大小值,即使现有的线程是空闲的!
我逐个发送请求并不断增加线程数,直到达到300。我的问题是,如果现有的线程处于空闲状态,为什么它不使用空闲的线程?一旦核心池大小达到,它仍然只使用池中的线程。
ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
executor.setCorePoolSize(300);
executor.setMaxPoolSize(500);
executor.setQueueCapacity(5000);
executor.setThreadNamePrefix("AsyncTask-");
executor.initialize();
我逐个发送请求并不断增加线程数,直到达到300。我的问题是,如果现有的线程处于空闲状态,为什么它不使用空闲的线程?一旦核心池大小达到,它仍然只使用池中的线程。