vlambda博客
学习文章列表

为什么说使用异步Async可以提高Web性能?

    随着.Net4.5的推出,一种新的编程方式简化了异步编程,本文的重点是理解Asp.net异步如何提高吞吐率,提高性能.当然提高性能的不单是异步,有很多方式,多线程等等。我希望本文能够帮助您了解 ASP.NET 上的异步请求的基础概念。使用 async 和 await,可以使编写能够最大限度地利用其服务器资源的 Web 应用程序、服务和 API 变得比以往任何时候都更容易。Async 真是太棒了!


一、什么是同步调用

  为什么说使用异步Async可以提高Web性能?

  浏览器发起请求,Web服务器开一个线程处理,处理完把处理结果返回浏览器。好像没什么好说的了,绝大多数Web服务器都如此般处理。现在想想如果处理的过程中需要调用后端的一个业务逻辑服务器

  为什么说使用异步Async可以提高Web性能?

  请求处理线程会在Call了之后等待Return,自身处于阻塞状态。这也是绝大多数Web服务器的做法。一般此种做法主要适用于,后端处理响应比较快,并且并发数比较低的情况。

  主要弊端,在高并发请求下,请求处理线程的短缺!因为请求处理线程的总数是有限的,如果类似的请求多了,所有的处理线程处于阻塞的状态,那新的请求也就无法处理了,也就所谓影响了服务器的吞吐能力。要更加好地发挥服务器的全部性能,就要使用异步。

二、什么是异步

  为什么说使用异步Async可以提高Web性能?

  最大的不同在于请求处理线程对后台处理的调用使用了“invoke”的方式,就是说调了之后直接返回,而不等待,这样请求处理线程就“自由”了,它可以接着去处理别的请求,当后端处理完成后,会钩起一个回调处理线程来处理调用的结果,这个回调处理线程跟请求处理线程也许都是线程池中的某个线程,相互间可以完全没有关系,由这个回调处理线程向浏览器返回内容。这就是异步的过程。

  带来的改进是显而易见的,请求处理线程不需要阻塞了,它的能力得到了更充分的使用,带来了服务器吞吐能力的提升。

为什么说使用异步Async可以提高Web性能?


为什么说使用异步Async可以提高Web性能?

腾讯课堂


为什么说使用异步Async可以提高Web性能?

网易云课堂



不信的话,扫一扫