什么是线程池预热?

2020-05-14 11:43:28 +08:00
 harryperlau

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

2739 次点击
所在节点    问与答
5 条回复
xuanbg
2020-05-14 11:50:41 +08:00
预热就是准备好等你来用。因为如果等你要用再创建线程池,就会有比较明显的等待过程。不光是线程池,连接池也是一样的。不预热的话,你会发现首次读写数据库的时间会多出几百毫秒的样子。
lis66951735
2020-05-14 12:03:01 +08:00
以 jdk 线程池为例,默认情况下线程池创建完成之后,池里是没有一个可复用的线程的,刚开始用的话,还是会有创建线程的开销。所以需要预热,当线程池准备好之后也准备好 coreSize 大小的可复用线程。
superrichman
2020-05-14 12:22:22 +08:00
你去食堂打饭,肯定是希望端着盘子过去,阿姨就给你盛上热腾腾的饭菜。而不是阿姨跟你说,我们的菜都还没开始煮,你先等等,等我们洗菜,再炒炒。
你打完菜,阿姨可以把已经热好的菜继续给下一个人。
jinzhongyuan
2020-05-14 12:22:46 +08:00
@xuanbg 感觉没多大意思啊
guyeu
2020-05-14 14:09:58 +08:00
鸡肋的优化。。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/671545

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX