spring-context.xml
<!-- webservice 异步回调线程池,参数暂定。
当线程数小于核心线程数时,创建线程。
当线程数大于等于核心线程数,且任务队列未满时,将任务放入任务队列。
当线程数大于等于核心线程数,且任务队列已满
若线程数小于最大线程数,创建线程
若线程数等于最大线程数,抛出异常,拒绝任务
cuilitang 2021-1-20 16:20:09
-->
<bean id="executor" class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor">
<!-- 线程池维护线程的最少数量 -->
<property name="corePoolSize" value="5" />
<!-- 线程池维护线程所允许的空闲时间, 1小时 -->
<property name="keepAliveSeconds" value="3600" />
<!-- 线程池维护线程的最大数量 -->
<property name="maxPoolSize" value="50" />
<!-- 线程池所使用的缓冲队列,切记不能设置为Integer.MAX_VALUE,这样队列会很大,线程数只会保持在corePoolSize大小,当任务陡增时,不能新开线程来执行,响应时间会随之陡增-->
<property name="queueCapacity" value="3000" />
<property name="threadNamePrefix" value="AsyncWebServiceCallBackThread-" />
</bean>
XXXService.java
@Autowired
private ThreadPoolTaskExecutor executor;
executor.submit(()->{
log.info("线程名称");
System.out.println(666);
});
<T> Future<T> submit(Callable<T> task)Submit a Callable task for execution, receiving a Future representing that task.