Bohr-L Bohr-L
首页
技术
常见面试题
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

刘博

I'm a slow walker, But I never walk backwards.
首页
技术
常见面试题
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • Java

    • JUC

      • 为什么不用Executors去创建线程池
        • 推荐创建方式
    • Spring

    • Gradle

    • 面向对象

    • Stream流式编程思想及常用API介绍
    • JAVA快速导出Excel
  • Golang

  • 编程思想

  • 微服务

  • 中间件

  • Python

  • 运维

  • 技术
  • Java
  • JUC
刘博
2020-07-08
目录

为什么不用Executors去创建线程池

线程池不允许使用Executors去创建,而是通过ThreadPoolExecutor的方式,这样的处理方式让写的同学更加明确线程池的运行规则,规避资源耗尽的风险。 Executors各个方法的弊端: newFixedThreadPool和newSingleThreadExecutor: 主要问题是堆积的请求处理队列可能会耗费非常大的内存,甚至OOM。 newCachedThreadPool和newScheduledThreadPool: 主要问题是线程数最大数是Integer.MAX_VALUE,可能会创建数量非常多的线程,甚至OOM。

# 推荐创建方式

ThreadFactory threadFactory = new CustomizableThreadFactory("thread-call-runner-");int size = services.size();
ExecutorService executorService = new ThreadPoolExecutor(size,size,0L,TimeUnit.MILLISECONDS,new LinkedBlockingQueue<Runnable>(512),namedThreadFactory);
1
2

#JUC
上次更新: 12/30/2025
彻底透析SpringBoot jar可执行原理

彻底透析SpringBoot jar可执行原理→

最近更新
01
CPU 使用率较高排查和解决
12-29
02
JVM OOM 问题如何排查和解决
12-29
03
接口防刷怎么实现?
12-29
更多文章>
Theme by Vdoing | Copyright © 2025-2026 Bohr-L's note
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式