异步调用请求的问题
来源:3-10 使用多线程提高REST服务性能

我是外国人
2017-09-09
这是开启异步配置:
这是我的controller,有一个休眠10秒的操作
下面我在浏览器同时打开两个窗口请求
一个是耗时10秒
另一个耗时18秒
我想请问一下老师,开启异步后是不是两个差不多同时发送的请求都应该是10秒,
我这里的代码有什么问题吗?还是说我对异步请求的理解有问题?我这里为什么controller里同一个方法不能并发访问?
写回答
2回答
-
答案是当你需要压榨一个机器的极限时,tomcat的并发线程并不是无限提高的,还是要受到机器性能的限制,如果你想在有限的线程数里支持更多的并发,就可以用这种异步的方式。
10 -
我是外国人
提问者
2017-09-09
我知道了,是我使用同一个浏览器的原因,我使用两个不同的浏览器就不会出现这种问题,就算不使用异步,controller里的方法也可以并发运行。
那为什么还要使用异步了?有人说:”因为会出现的问题就是请求处理线程的短缺!请求处理线程的总数是有限的,如果类似的请求多了,所有的处理线程处于阻塞的状态,那新的请求也就无法处理了,也就影响了服务器的吞吐能力。要更加好地发挥服务器的全部性能,就要使用异步”。
我的新的问题是:tomcat服务器并发线程数默认是150,我们是不是只要把并发线程数调高点,就一样能达到和异步请求一样的效果(毕竟创建异步线程也要耗费资源)?到底什么时候需要使用异步请求?
032017-09-10
Spring Security技术栈开发企业级认证与授权
Spring Security技术栈,REST风格开发常见接口,独立开发认证授权模块保证REST服务安全
2662 学习 · 1561 问题
相似问题