聊聊线程池的预热

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

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

相关推荐
Sirius Wu5 分钟前
Agent模型冷启动问题
开发语言·javascript·人工智能·机器学习·ecmascript·aigc
用户2986985301411 分钟前
Java 实现 Word 文档内容复制:段落、章节与全文合并技巧
java·后端
吴声子夜歌15 分钟前
JVM——原子操作类实现原理
jvm·原子操作类
摇滚侠15 分钟前
Maven 入门+高深 SSM 案例 111-112
java·数据库·maven
Chase_______19 分钟前
【Java基础 | 16】集合框架(下):Map、HashMap 与 TreeMap
java·windows
吴阿福|一人公司25 分钟前
类变量和实例变量的命名规范有哪些避坑点?
开发语言·python
Aaswk26 分钟前
Java项目:文件批量处理工具
java·开发语言·vscode·idea
小江的记录本30 分钟前
【Spring全家桶】Spring AI核心原理、大模型集成、Prompt工程、RAG实现、AI Agent开发(附《思维导图》+《面试高频考点清单》)
java·人工智能·spring boot·后端·spring·面试·prompt
plainGeekDev34 分钟前
线程安全集合 → 协程安全替代
android·java·kotlin
晚风吹红霞39 分钟前
深入浅出 STL 之 map 与 set:从入门到实战
开发语言·c++