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

ThreadPoolTaskExecutor提高服务器响应速度

2015-12-27 16:34 357 查看
Spring配置文件

<!-- 任务执行器 -->
<bean id="taskExecutor" class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor">
<!-- 核心线程数  -->

        <property name="corePoolSize" value="10" />

        <!-- 最大线程数 -->

        <property name="maxPoolSize" value="50" />

        <!-- 队列最大长度 >=mainExecutor.maxSize -->

        <property name="queueCapacity" value="1000" />

        <!-- 线程池维护线程所允许的空闲时间,默认为60s -->

        <property name="keepAliveSeconds" value="300" />

        <!-- 线程池对拒绝任务(无线程可用)的处理策略 -->

        <property name="rejectedExecutionHandler">

            <bean class="java.util.concurrent.ThreadPoolExecutor$CallerRunsPolicy"/>

        </property>
</bean>

调用线程池

public static void startSendMsg(final long id, final String title, final String content, final int type) {
log.info("1-start sending startSendMsg");
ThreadPoolTaskExecutor taskExecutor = (ThreadPoolTaskExecutor) SpringUtil.getBean("taskExecutor");
taskExecutor.execute(new Runnable() {
public void run() {
log.info("2-taskExecutor.execute run start.");
try {
sendMsg(id, title, content, type);
} catch (Exception e) {
log.error("失败", e);
}
log.info("8-taskExecutor.execute run end.");
}
});
}

这个类似数据库连接池,减少创建线程,销毁线程时的开销,提高响应速度。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java