springboot執行緒池配置
阿新 • • 發佈:2022-05-06
執行緒池配置
/** * @Description: 非同步處理執行緒池 * @Author: zq * @Date: 2021/11/23 14:15 **/ @Configuration @EnableAsync public class TaskExecutorConfig { /** * 非同步處理執行緒 * @return */ @Bean(name = "screenTaskExecutor") public TaskExecutor taskExecutor() { int coreThreadCount = 70; int maxThreadCount = 100; ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor(); // 核心執行緒數:執行緒池建立時候初始化的執行緒數 executor.setCorePoolSize(coreThreadCount); // 最大執行緒數:執行緒池最大的執行緒數,只有在緩衝佇列滿了之後才會申請超過核心執行緒數的執行緒 executor.setMaxPoolSize(maxThreadCount); // 允許執行緒的空閒時間(秒):當超過了核心執行緒出之外的執行緒在空閒時間到達之後會被銷燬 executor.setKeepAliveSeconds(600); // 設定執行緒名稱 executor.setThreadNamePrefix("Screen-"); // 設定拒絕策略 executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy()); // 等待所有任務結束後再關閉執行緒池 executor.setWaitForTasksToCompleteOnShutdown(true); executor.initialize(); return executor; } }