Spring 线程池
来源:互联网 发布:哪款刷机软件最好用 编辑:程序博客网 时间:2024/04/28 16:49
<bean id="taskExecutor" class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor"> <property name="corePoolSize" value="2" /> <property name="maxPoolSize" value="5" /> <property name="queueCapacity" value="6" /> <property name="keepAliveSeconds" value="2000" /> <property name="rejectedExecutionHandler"> <bean class="java.util.concurrent.ThreadPoolExecutor$AbortPolicy" /> </property> </bean>
corePoolSize:线程池至少有2个线程是启动的,即使是空闲的也不会关闭。
maxPoolSize:最大的线程数目,当corePoolSize繁忙时,会创建线程,启动的总的线程数不能大于maxPoolSize
queueCapacity:queueCapacity: 队列大小,当corePoolSize没有空闲线程的时候,允许queueCapacity个线程任务等待,queueCapacity队列满时!才会在corePoolSize的基础上,maxPoolSize之内进行新的线程的创建!
keepAliveSeconds: 单位毫秒,超过这个时间后会将大于corePoolSize的线程关闭
rejectedExecutionHandler: 拒绝执行任务的具体操作,AbortPolicy表示抛出RejectedExecutionException异常。还有其他的几种选择。CallerRunsPolicy:主线程执行该任务,执行完之后尝试添加下一个任务到线程池中,可以有效降低向线程池内添加任务的速度。
看具体的代码:
public class Test { private static Log logger = LogFactory.getLog(Test .class); //线程池 @Autowired @Qualifier("taskExecutor") private TaskExecutor taskExecutor; public void setTaskExecutor(TaskExecutor taskExecutor) { this.taskExecutor = taskExecutor; } public void test() { try { taskExecutor.execute(new TaskThread()); } catch (RejectedExecutionException e) { //do something } } private class TaskThread implements Runnable { @Override public void run() { //do something } } } }
0 0
- Spring 线程池使用
- Spring 线程池
- Spring线程池
- spring处理线程池
- spring 线程池
- Spring 线程池应用
- Spring 线程池使用
- Spring线程池配置
- Spring 线程池
- spring线程池
- Spring 线程池应用
- spring集成线程池
- Spring线程池开发
- Spring中的线程池
- Spring线程池
- spring 多线程-线程池:
- spring管理线程池
- Spring线程池配置
- 萨法司法所分
- 主机centos7系统与VBOX下的XP系统实现文件共享
- ubuntu+ndk编译ffmpeg
- android第一个APP
- 最简单的方法实现MIDI音乐循环播放 (不用在MCI回调中处理)
- Spring 线程池
- 句柄和指针的区别
- 使用libevent编写Linux服务
- EventBus框架之一、开发入门
- HDU 2163
- iOS开发UITextView属性,点击新增内容案例,及UITextViewDelegate里光标/值变化的操作方法
- WCF服务怎样与宿主程序交互
- springMVC 静态资源加版本号
- SHA1和MD5安全性探讨