聊聊线程池的预热

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

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方法用于启动所有的核心线程。

相关推荐
m0_740043732 分钟前
Spring和SpringBoot和SpringMVC 的关系总结
java·spring boot·spring·mvc
weixin_307779135 分钟前
Jenkins Matrix Authorization Strategy插件:详解与应用指南
运维·开发语言·架构·jenkins
float_com6 分钟前
【JavaWeb常见BUG】—— Lombok依赖失效问题
java·javaweb·bug分析与解决
通往曙光的路上8 分钟前
异步任务la
java·开发语言
星释8 分钟前
Rust 练习册 116:杂志剪贴侦探游戏
开发语言·后端·rust
SadSunset12 分钟前
(16)MyBatis执行流程分析(偏上层架构)
java·架构·mybatis
Tan_Ying_Y13 分钟前
JVM内存结构,什么是栈桢?
java·jvm
木井巳17 分钟前
【多线程】Thread类及常用方法
java·java-ee
+++.18 分钟前
c++雪花屏(vsCode+cmake+mingw+ninja)
开发语言·c++·vscode
小年糕是糕手23 分钟前
【C++】内存管理(下)
java·c语言·开发语言·数据结构·c++·算法