扫码关注官方订阅号
数据库查询会阻塞当前NIO线程,那么这个NIO线程在此期间就无法处理其它请求,造成了CPU浪费。这样的话是不是还不如BIO模型并发能力好?
光阴似箭催人老,日月如移越少年。
数据库的查询阻塞和 Tomcat 的 NIO/BIO 配置没有关系。可以认为大量数据库查询阻塞的是当前请求的业务处理线程,造成的问题是服务器对于请求的事务处理时间长、响应慢。但应用服务器接收其他请求并处理的能力还是在的,这个时候其他线程在服务器总资源(包括数据库资源)满足情况下不会受题主假设的该阻塞线程影响。
当然,如果并发高,类似的请求造成堆积的话会对系统造成很大影响。不过,就此题而言,这些和题主考虑的 NIO、BIO 关系不大。我认为,此题中 BIO 并不会比 NIO 表现出色。
题主可能搞混了NIO与BIO的区别。可以看一下这篇文章JAVANIO无论是在NIO还是BIO,在处理这个业务逻辑的时候都不能处理其他的业务逻辑。题主咋想的。。
这两个应该不是一回事,你的请求涉及到很多数据库查询,那就应该通过提供缓存等来加快查询的速度。
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
数据库的查询阻塞和 Tomcat 的 NIO/BIO 配置没有关系。可以认为大量数据库查询阻塞的是当前请求的业务处理线程,造成的问题是服务器对于请求的事务处理时间长、响应慢。但应用服务器接收其他请求并处理的能力还是在的,这个时候其他线程在服务器总资源(包括数据库资源)满足情况下不会受题主假设的该阻塞线程影响。
当然,如果并发高,类似的请求造成堆积的话会对系统造成很大影响。不过,就此题而言,这些和题主考虑的 NIO、BIO 关系不大。我认为,此题中 BIO 并不会比 NIO 表现出色。
题主可能搞混了NIO与BIO的区别。可以看一下这篇文章JAVANIO
无论是在NIO还是BIO,在处理这个业务逻辑的时候都不能处理其他的业务逻辑。
题主咋想的。。
这两个应该不是一回事,你的请求涉及到很多数据库查询,那就应该通过提供缓存等来加快查询的速度。