線程池不允許使用Excutors去創建,而是通過ThreadPoolExecutor的方式,這樣的處理方式讓程序員更加明確線程池的運行規則,避免資源耗盡的風險。
說明:Executors返回的線程池對象的弊端如下:
1.FixedThreadPool和SingleThreadPool:
允許的請求隊列長度爲Integer.MAX_VALUE,可能會堆積大量的請求,從而發生內存溢出現象(oom)
2.CachedThreadPool和ScheduledThreadPool:
允許的創建線程數量爲Integer.MAX_VALUE,可能會創建大量的線程,從而導致內存溢出現象(oom)