本文是异步编程学习之路(五)-线程池原理及使用,若要关注前文,请点击传送门:
前文我们详细介绍了线程之间协同合作的方法,在本文中我们将再进一步详细讲解线程池的原理及使用。
个人认为,如果想要学好线程池就必须先从ThreadPoolExcetor源码开始讲起,我不建议直接使用Executors来创建一个线程池。至于为什么不建议直接使用的原因,阅读完本文大家就能够明白了。
一、ThreadPoolExcetor源码分析
1、ThreadPoolExcetor构造
在Jdk8中ThreadPoolExcetor有四种构造方法,每种构造方法上都有不同的参数,代码如下:
public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit, BlockingQ