文章目录
线程池
线程经历创建,运行,销毁。其中创建和销毁就会很消耗性能。
线程池可以提前创建好线程,实现线程复用,
newCachedThreadPool():
newFixedThreadPool():
newSingleThreadExecutor()
都来自于ThreadPoolExecutor
通过参数调整实现
执行过程
- 线程数是否达到corePoolSize。没有则创建线程并执行。否则第二步
- workQueue是否满了。没有就进入workQueue。否则第三步
- 线程数是否达到maximumPoolSize。 没有则创建线程并执行。否则第四步
- 拒绝策略
ThreadPoolExecutor
corePoolSize
maximumPoolSize
keepAliveTime:执行完可以空闲的时间
unit
workQueue:阻塞队列
threadFactory
handler:拒绝策略
newCachedThreadPool()
corePoolSize:0
maximumPoolSize:Integer.MAX_VALUE
keepAliveTime