为什么不推荐使用默认线程池?

为什么不推荐使用Executors的默认提供的四种线程池呢?

1 个回答

  • 无邪
    鸟随鸾凤飞腾远,人伴贤良品自高。
    主要是newFixedThreadPool和newSingleThreadExecutor的等待队列是LinkedBlockingQueue,长度是Integer.MAX_VALUE,,可以认为是无限大的,如果创建的任务特别多,可能会造成内存溢出。而newCachedThreadPool和newScheduledThreadPool的最大线程数是Integer.MAX_VALUE,如果创建的任务过多,可能会导致创建的线程过多,从而导致内存溢出。
    编辑于 2022-02-11 11:07 •IP属地 辽宁
    举报
    评论
    收藏