聊聊线程池的预热

本文主要研究一下线程池的预热

prestartCoreThread

java/util/concurrent/ThreadPoolExecutor.java

复制代码
    /**
     * Starts a core thread, causing it to idly wait for work. This
     * overrides the default policy of starting core threads only when
     * new tasks are executed. This method will return {@code false}
     * if all core threads have already been started.
     *
     * @return {@code true} if a thread was started
     */
    public boolean prestartCoreThread() {
        return workerCountOf(ctl.get()) < corePoolSize &&
            addWorker(null, true);
    }

ThreadPoolExecutor定义了prestartCoreThread,用于启动一个核心线程

prestartAllCoreThreads

java/util/concurrent/ThreadPoolExecutor.java

复制代码
    /**
     * Starts all core threads, causing them to idly wait for work. This
     * overrides the default policy of starting core threads only when
     * new tasks are executed.
     *
     * @return the number of threads started
     */
    public int prestartAllCoreThreads() {
        int n = 0;
        while (addWorker(null, true))
            ++n;
        return n;
    }

prestartAllCoreThreads用于启动所有的核心线程

小结

ThreadPoolExecutor提供了prestartCoreThread方法,用于启动一个核心线程,提供了prestartAllCoreThreads方法用于启动所有的核心线程。

相关推荐
Leo July几秒前
【Java】Java设计模式实战指南:从原理到框架应用
java·开发语言·设计模式
冬奇Lab几秒前
【Kotlin系列13】DSL设计:构建类型安全的领域语言
开发语言·安全·kotlin
Anastasiozzzz3 分钟前
力扣hot100 20.有效的括号 解析
java·算法·面试·力扣
brave_zhao7 分钟前
如何解决 Spoon 与 Carte 互联的 UTF-8 编码问题
java
2501_9445215914 分钟前
Flutter for OpenHarmony 微动漫App实战:分享功能实现
android·开发语言·javascript·flutter·ecmascript
重生之我是Java开发战士16 分钟前
【数据结构】Map、Set与哈希表底层原理
java·数据结构·散列表
嵌入式小能手17 分钟前
飞凌嵌入式ElfBoard-系统信息与资源之休眠
c语言·开发语言·算法
橘子师兄19 分钟前
C++AI大模型接入SDK—API接入大模型思路
开发语言·数据结构·c++·人工智能
Object~21 分钟前
7.Go语言中的slice
开发语言·后端·golang
L.EscaRC24 分钟前
深度解析 Spring 框架核心代理组件 MethodProxy.java
java·开发语言·spring