java线程池的使用
来源:互联网 发布:浅析网络直播 编辑:程序博客网 时间:2024/06/03 16:13
那么有没有一种办法使得线程可以复用,就是执行完一个任务,并不被销毁,而是可以继续执行其他的任务?
在java中可以通过线程池来达到这样的效果,本文将介绍一种线程池的使用方法。使用ThreadPoolTaskExecutor来实现线程池,通过spring进行配置,详解如下:
<!-- 配置线程池 -->
<bean id="threadPool" class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor">
<!-- 线程池维护线程的最少数量 -->
<property name="corePoolSize" value="50" />
<!-- 线程池维护线程所允许的空闲时间 -->
<property name="keepAliveSeconds" value="30000" />
<!-- 线程池维护线程的最大数量 -->
<property name="maxPoolSize" value="200" />
<!-- 线程池所使用的缓冲队列 -->
<property name="queueCapacity" value="1000" />
</bean>
corePoolSize是线程池维护线程的最少数量 ,即线程池中可运行的线程数,超过就需要进入队列中排队,待线程池中有释放线程资源时,再从队列中取出依次执行。
keepAliveSeconds是线程池维护线程所允许的空闲时间,即线程池中线程的可允许空闲时间,超过该时间,则线程关闭。
maxPoolSize是线程池中可维护最大线程数量,超过则不接受任务,抛出异常。
queueCapacity是线程池所使用的缓冲队列,队列大小设置。
代码中实际使用如下:
//获取context中线程池实例
ThreadPoolTaskExecutor threadPool = (ThreadPoolTaskExecutor) context.getBean("threadPool");
//调用execute方法,传入线程,使用了Runnable接口创建线程。
threadPool.execute(new Runnable() {
public void run(){
//TODO
}
});
- java线程和线程池的使用
- java 线程池的使用
- java线程池的使用
- Java线程池的使用
- Java线程池的使用
- java线程池的使用
- java线程池的使用
- java 线程池的使用
- Java线程池的使用
- java 线程池的使用
- JAVA线程池的使用
- java线程池的使用
- Java线程池的使用
- java 线程池的使用
- java线程池的使用
- java 线程池的使用
- Java线程池的使用
- Java 线程池的使用
- 这家公有云公司如何帮助AI商业变现?
- 抢攻万亿企业级市场,“BAT”联手浪潮、神码、用友重塑企业级生态
- Set breakpoints for debugging—>Matlab调试命令
- Asp.Net Mvc表单提交之List集合
- Nutch Crawler抓取数据并存储到MySQL
- java线程池的使用
- 极光推送PHP服务器端+ThinkPHP3.5
- 日常问题总结(10)
- 图像基础14 图像滤波与除噪——均一化块滤波(高斯、椒盐)
- 发布一个月,iOS 11 安装普及率达到 55%
- PS CS6 forMac 中文破解版下载及破解方法
- 从零开始学习TFLearn(二)
- leetcode 75. Sort Colors
- DXP AD 绘制一个扁长型的过孔