您的位置:首页 > 编程语言 > Java开发

spring/springmvc/hibernate 配置异步线程池

2018-06-21 11:21 141 查看
版权声明:本人原创内容,希望大佬在转载时注明出处,感激不尽。 https://blog.csdn.net/qq_23832313/article/details/80757745

最近在做一些调用python的工作,不需要接收python的返回值,因为调用比较耗时,所以这里采用异步线程的方式实现:

在  applicationContext.xml 里配置如下代码:

<!-- 异步线程池 -->

    <bean id="threadPoolTaskExecutor"
        class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor">
        <!-- 核心线程数 -->
        <property name="corePoolSize" value="20" />
        <!-- 最大线程数 -->
        <property name="maxPoolSize" value="120" />
        <!-- 队列最大长度 >=mainExecutor.maxSize -->
        <property name="queueCapacity" value="120" />
        <!-- 线程池维护线程所允许的空闲时间 -->
        <property name="keepAliveSeconds" value="1000" />
        <!-- 线程池对拒绝任务(无线程可用)的处理策略 ThreadPoolExecutor.CallerRunsPolicy策略 ,调用者的线程会执行该任务,如果执行器已关闭,则丢弃.  -->
        <property name="rejectedExecutionHandler">
            <bean class="java.util.concurrent.ThreadPoolExecutor$CallerRunsPolicy" />
        </property>
    </bean>



使用:

@Autowired
private ThreadPoolTaskExecutor taskExecutor;

taskExecutor.execute(new Runnable() {
@Override
public void run() {
PythonInterfaceVisitUtil.callPython(params, pyProjectPath);
}

});




阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: