爱尚你1993 2018-10-20 01:08 采纳率: 50%
浏览 1621
已结题

异步Servlet为什么能提高并发?

异步Servlet为什么能提高并发?有点不明白异步化之后虽然tomcat中的tomcat connector接收线程少了,但业务线程还是一样的呀,那为什么不直接调大tomcat的线程数

  • 写回答

2条回答

  • threenewbee 2018-10-20 01:20
    关注

    因为有些代码调用会造成线程阻塞。比如说,调用一个远程的api,那么当你请求发出,等待对方返回数据的时候,你的服务器(如果是同步的话)就无事可做了。
    此时如果有新的请求,只能排队等着,而当前的程序也不能往下执行。
    而异步就可以解决这个问题,一个请求阻塞的时候,服务器可以同时处理别的请求。
    为什么不直接调大tomcat的线程数,因为同步的请求,Servlet的非静态成员和方法都需要同步的,你的线程再多,也不能并发,只能等着。

    评论

报告相同问题?

悬赏问题

  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
  • ¥15 名为“Product”的列已属于此 DataTable
  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)