聊聊线程池的预热

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

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

相关推荐
写了20年代码的老程序员几秒前
企业微信、飞书、钉钉 Webhook 接入,后端代码为什么总是越写越丑
java·微信
解决问题no解决代码问题3 分钟前
设计模式分类介绍
java·开发语言·设计模式
sugar__salt5 分钟前
从Python列表切片到LLM接口实战:零基础AI编程落地教程
开发语言·python·ai·prompt·transformer·ai编程
码不停蹄的玄黓9 分钟前
SpringBoot 自动装配原理
java·spring boot·后端
z落落10 分钟前
C# 数组属性和方法(Clear / Copy / IndexOf / LastIndexOf)
开发语言·javascript·c#
白露与泡影12 分钟前
Java虚拟线程实战:从线程池痛点到性能优化全流程
java·开发语言·性能优化
码上有光13 分钟前
c++模板进阶知识讲解(对模板的进一步的运用与理解)
java·前端·c++·特化·模板进阶·偏特化
IT空门:门主16 分钟前
Java 单例模式详解:7 种实现方式 + volatile 原理 + 反射与序列化问题
java·开发语言·单例模式
Byte Wizard20 分钟前
自定义类型:联合和枚举
c语言·开发语言
SimonKing21 分钟前
别再把业务逻辑写进回调接口了!支付回调的正确打开方式
java·后端·程序员