线程池队列无限增长,任务全积压在最末尾

用无界队列做缓冲,任务只会一直排队不拒绝,最后把内存吃满,表现是响应越来越慢。

队列要设容量,满了就走拒绝策略,让调用方快速失败,比拖垮整个进程要好。

再按业务把线程池隔离,别让慢任务占着核心线程把别的接口一起拖死,队列深度要加监控。

// 有界队列 + 拒绝策略
new ThreadPoolExecutor(8, 16, 60, TimeUnit.SECONDS,
    new ArrayBlockingQueue<>(200),
    new ThreadPoolExecutor.AbortPolicy());
THE END
喜欢就支持一下吧
点赞7 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容