java - 处理一个web请求涉及很多数据库查询,那么将Tomcat配置成NIO线程模型会不会反而降低并发能力?
大家讲道理
大家讲道理 2017-04-17 15:34:48
[Java讨论组]

数据库查询会阻塞当前NIO线程,那么这个NIO线程在此期间就无法处理其它请求,造成了CPU浪费。这样的话是不是还不如BIO模型并发能力好?

大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

全部回复(3)
阿神

数据库的查询阻塞和 Tomcat 的 NIO/BIO 配置没有关系。可以认为大量数据库查询阻塞的是当前请求的业务处理线程,造成的问题是服务器对于请求的事务处理时间长、响应慢。但应用服务器接收其他请求并处理的能力还是在的,这个时候其他线程在服务器总资源(包括数据库资源)满足情况下不会受题主假设的该阻塞线程影响。

当然,如果并发高,类似的请求造成堆积的话会对系统造成很大影响。不过,就此题而言,这些和题主考虑的 NIO、BIO 关系不大。我认为,此题中 BIO 并不会比 NIO 表现出色。

ringa_lee

题主可能搞混了NIO与BIO的区别。可以看一下这篇文章JAVANIO
无论是在NIO还是BIO,在处理这个业务逻辑的时候都不能处理其他的业务逻辑。
题主咋想的。。

高洛峰

这两个应该不是一回事,你的请求涉及到很多数据库查询,那就应该通过提供缓存等来加快查询的速度。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号