作者回复: 1. ThreadpoolExecutor提供了prestartAllCoreThreads方法可以预先启动核心线程
2. 如果使用无界队列的话,最大线程数就没有意义了,因为永远不会用到,所以尽量不要使用无界队列
作者回复: jdk的ThreadPoolExecutor可以调用executor.getQueue().size()
作者回复: 我理解的QPS是每秒查询数,是针对读请求的
TPS是每秒执行事务数,倾向于写请求
作者回复: 👍
作者回复: 怎么会,是最好的语言呀:)
作者回复: 线程在等待io操作的时候确实会让出CPU时间片,可以说说你是如何测试的吗~
作者回复: 😄
作者回复: 嗯那 可以自定义策略
作者回复: go,😂
作者回复: 是的,内存池也是一种常见的池化技术的常见实现
作者回复: 1. 其实这些是经验所得,这个数值需要在实际运行中来调整,初期可以按照这个来设置
2. 连接池的最大连接数肯定要小于max_connections的,你的理解没错~
作者回复: 1. 需要监控队列里面堆积的任务数
2. 这个要看线程池的使用方式
作者回复: 线程池的组件中可以获取堆积量的,ThreadPoolExecutor.getQueue().size(),可以启动一个线程定期打印到日志中
作者回复: 是tomcat中使用的线程池与原生的线程池不同,tomcat使用的线程池是先增加线程,后放入队列
作者回复: 默认的ThreadPoolExecutor是JDK原生的线程池
作者回复: 要用代码实现,比如线程池可以获取队列的堆积数量
作者回复: 这样是对DB的查询量增加了一倍,高并发下可能性能会有影响
作者回复: 😂😂