Java 線程池的正確創建方式
@Component
public class TdtExecutor {
public ExecutorService getExecutor(String threadPrefix, int threadCount) {
ThreadFactory threadFactory = new ThreadFactoryBuilder().setNameFormat(threadPrefix "_%d").build();
int processors = Runtime.getRuntime().availableProcessors();
int availableProcessors = Math.min(threadCount, processors);
return new ThreadPoolExecutor(2 * availableProcessors, 4 * availableProcessors, 2, TimeUnit.DAYS, new LinkedBlockingQueue<>(100), threadFactory, new ThreadPoolExecutor.CallerRunsPolicy());
}
}