线程池的种类
其实看似这么多的线程池,都离不开
ThreadPoolExecutor
去创建,只不过他们是简化一些参数
newFixedThreadPool
里面全是核心线程
有资源耗尽的风险,任务队列最大长度为```Integer.MAX_VALUE``,可能会堆积大量的请求,导致OOM(内存溢出)风险
FixThreadPool有两个构造方法,一个是带线程工厂的,一个是不带的
SingleThreadExecutor
内部同样采用ThreadPoolExcutor来创建线程池,全是核心线程
singleThreadPoolExecutor有两个构造方法,一个是带线程工厂的,一个是不带的
CachedThreadPool
可缓存线程池内部全是非核心线程
他运行创建的最大线程数是
Integer.MEX_VALUE
,可能会创建大量的线程,从而导致OOM
CachedThreadPool
同样有两个构造方法,一个是带线程工厂的,一个是不带的