java线程API学习 线程池ThreadPoolExecutor

本文详细介绍了Java线程池ThreadPoolExecutor的构造函数、核心线程数、最大线程数、存活时间、线程工厂、任务拒绝策略等关键概念,并讨论了不同类型的线程池工具方法,如newCachedThreadPool、newFixedThreadPool和newSingleThreadExecutor的适用场景。此外,文章通过实例解释了线程池的工作逻辑,帮助读者更好地理解和应用线程池。
摘要由CSDN通过智能技术生成
http://blog.csdn.net/ABBuggy/archive/2011/06/16/6548843.aspx
线程池ThreadPoolExecutor继承自ExecutorService。是jdk1.5加入的新特性,将提交执行的任务在内部线程池中的可用线程中执行。
构造函数

ThreadPoolExecutor(int corePoolSize, 
                              int maximumPoolSize, 
                              long keepAliveTime, 
                              TimeUnit unit, 
                              BlockingQueue<Runnable> workQueue, 
                              ThreadFactory threadFactory, 
                              RejectedExecutionHandler handler)

corePoolSize
线程池维护的核心线程数。
为什么这里说核心线程数而不是最小线程数是因为在线程池被创建后,并不会直接创建corePoolSize个线程,而是等任务到来时临时创建。等按照需要创建了corePoolSize个线程之后,这些数量的线程即使闲置,也不会被线程池收回。这时即可以将这个值理解为线程池维护的最小线程数了。 

maximumPoolSize
线程池维护的最大线程数。 

keepAliveTime
当线程池中的线程数量大于corePoolSize,多出那部分数量的线程空闲keepAliveTime后会被收回。 

uni
keepAliveTime的时间单位。可选的参数为java.util.concurrent.TimeUnit中的几个静态属性:NANOSECONDS、MICROSECONDS、MILLISECONDS、SECONDS。 

workQueue
存放通过execute方法提交给线程等待执行的任务的队列。
 
threadFactory
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值