首页 > Web开发 > 详细

asp.net mvc中的异步控制器

时间:2020-04-30 16:03:04      阅读:47      评论:0      收藏:0      [点我收藏+]

在asp.net mvc中使用使用异步控制器能够提高web应用程序的吞吐率,即同一时间内能够处理请求的能力。

在web服务器中,net framework 维护了一个线程池来处理asp.net的请求。当一个请求到达时,线程池指派一个线程来处理。如果请求是同步的,而且这个请求耗时比较长,就会阻塞,就要排队,一个个来处理。
假设,线程池里共10个线程,同时来了10个请求,那么第11个请求就会排队等着,前面10请求如果长时间未能结束,那么第11个请求就会超时报错(503 server busy)

IIS的线程池最大线程数是5000,不过默认是1000。IIS在某一时刻能够最大限制的处理5000个同步请求。

在服务器请求中,访问数据库,统计数据,读写文件,后台请求其他网络都是非常耗时的操作。在大批量请求的时候,可以使用异步控制器来出来请求。在异步控制器处理请求时,net framework会再起个独立的进程出来长时间的任务,处理完事再又主线程返回数据。

同步请求在处理长时间任务时,独立占用主线程。异步请求在处理长时间任务时,主线程该干嘛干嘛,不会被占用。

技术分享图片

 

 

资料来源:https://docs.microsoft.com/en-us/aspnet/mvc/overview/performance/using-asynchronous-methods-in-aspnet-mvc-4

asp.net mvc中的异步控制器

原文:https://www.cnblogs.com/tomatochen/p/12809068.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!