java 的虚拟线程调度器内部使用的平台线程数实际就是 cpu 核数,比如我的 cpu 核数是8,这个场景实际上就是在比较:1. 把100万条 sql 当成虚拟线程任务放到 java 的8个调度器平台线程处理;2. 把100万条 sql 放到我启动的100个平台线程的队列,然后操作系统调度这100个平台线程执行。1和2哪个快?
@zhh-4096
很多数据库无法支持100万条连接,即便应用服务器收到100万条并发 sql,它也无法创建100万条连接,只能从包含上千条连接的连接池里取。如果做不到批量执行,我只要开100个平台线程逐条处理这100万条 sql 即可。反而用虚拟线程不好做,只能把执行每条 sql 的方法当成一个虚拟线程任务提交,实测更慢。
