作者回复: 1. ThreadpoolExecutor提供了prestartAllCoreThreads方法可以预先启动核心线程
2. 如果使用无界队列的话,最大线程数就没有意义了,因为永远不会用到,所以尽量不要使用无界队列
作者回复: jdk的ThreadPoolExecutor可以调用executor.getQueue().size()
作者回复: 我理解的QPS是每秒查询数,是针对读请求的
TPS是每秒执行事务数,倾向于写请求
作者回复: 👍
作者回复: 怎么会,是最好的语言呀:)
作者回复: 线程在等待io操作的时候确实会让出CPU时间片,可以说说你是如何测试的吗~
作者回复: 😄
作者回复: 是tomcat中使用的线程池与原生的线程池不同,tomcat使用的线程池是先增加线程,后放入队列
作者回复: 😂😂
作者回复: testOnBorrow是在获取连接的时候校验连接
testWhileIdle是有周期性的校验
这两个都依赖validationQuery
作者回复: 嗯那 可以自定义策略
作者回复: go,😂
作者回复: 是的,内存池也是一种常见的池化技术的常见实现
作者回复: 1. 其实这些是经验所得,这个数值需要在实际运行中来调整,初期可以按照这个来设置
2. 连接池的最大连接数肯定要小于max_connections的,你的理解没错~
作者回复: 其实主要的问题是,io密集型的系统,CPU会不那么繁忙,所以可以处理更多线程的安排的任务
作者回复: 是的,内存池化也是比较常见的
作者回复: 是的,但是这是最轻量的
作者回复: 是的 这个在高并发场景下是标配