1 线程池pool?
线程池是一种多线程处理形式,处理过程中将任务添加到队列,然后在创建线程后自动启动这些任务。
线程池可以帮助用户创建一个管理所有线程的容器,线程的创建和销毁都由线程池来管理。
spring线程池配置
<bean id="taskExecutor" class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor"> <!-- 核心线程数 --> <property name="corePoolSize" value="${task.core_pool_size}" /> <!-- 最大线程数 --> <property name="maxPoolSize" value="${task.max_pool_size}" /> <!-- 队列最大长度 --> <property name="queueCapacity" value="${task.queue_capacity}" /> <!-- 线程池维护线程所允许的空闲时间,默认为60s --> <property name="keepAliveSeconds" value="${task.keep_alive_seconds}" /> </bean> |
task.core_pool_size=2 task.max_pool_size=10 task.queue_capacity=10 task.keep_alive_seconds=60 |
测试线程池
package com.www.thread; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; /** * @author Sunshine * @description测试线程池 * 2017-12-20上午8:41:19 */ publicclass ThreadPoolTest { /** * @param args */ publicstaticvoid main(String[] args) { ApplicationContext ac = new ClassPathXmlApplicationContext("classpath:spring/applicationContext.xml"); ThreadPoolTaskExecutor tt=(ThreadPoolTaskExecutor) ac.getBean("taskExecutor"); for (int i = 0; i < 50; i++) { MultiThreadByRunnable mb = new MultiThreadByRunnable( |