V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
harryperlau
V2EX  ›  问与答

什么是线程池预热?

  •  
  •   harryperlau · May 14, 2020 · 3097 views
    This topic created in 2176 days ago, the information mentioned may be changed or developed.

    我认为的线程池预热就是让核心线程都处于 running 的状态,请问这样理解正确吗?为什么要预热呢?

    5 replies    2020-05-14 14:09:58 +08:00
    xuanbg
        1
    xuanbg  
       May 14, 2020
    预热就是准备好等你来用。因为如果等你要用再创建线程池,就会有比较明显的等待过程。不光是线程池,连接池也是一样的。不预热的话,你会发现首次读写数据库的时间会多出几百毫秒的样子。
    lis66951735
        2
    lis66951735  
       May 14, 2020
    以 jdk 线程池为例,默认情况下线程池创建完成之后,池里是没有一个可复用的线程的,刚开始用的话,还是会有创建线程的开销。所以需要预热,当线程池准备好之后也准备好 coreSize 大小的可复用线程。
    superrichman
        3
    superrichman  
       May 14, 2020 via iPhone   ❤️ 1
    你去食堂打饭,肯定是希望端着盘子过去,阿姨就给你盛上热腾腾的饭菜。而不是阿姨跟你说,我们的菜都还没开始煮,你先等等,等我们洗菜,再炒炒。
    你打完菜,阿姨可以把已经热好的菜继续给下一个人。
    jinzhongyuan
        4
    jinzhongyuan  
       May 14, 2020
    @xuanbg 感觉没多大意思啊
    guyeu
        5
    guyeu  
       May 14, 2020
    鸡肋的优化。。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5555 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 50ms · UTC 02:48 · PVG 10:48 · LAX 19:48 · JFK 22:48
    ♥ Do have faith in what you're doing.