源码中Executors类下的四个创建线程池的方式
1. newFixedThreadPool():
2. newSingleThreadExecutor():
总结:
newFixedThreadPool()与newSingleThreadExecutor()两种方式的请求队列为
LinkedBlockingQueue(),这种请求队列的长度为Integer.MAX_VALUE,容易堆积过多请求,导致OOM。
3. newCachedThreadPool():
4. newScheduledThreadPool():
总结:
newCachedThreadPool()与newScheduledThreadPool()允许创建的最大线程池数量为Integer.MAX_VALUE,容易创建巨量的线程,导致OOM。