MVC中的异步/等待 - 为什么在长时间运行期间释放线程很重要

时间:2016-11-22 13:47:14

标签: c# asp.net-mvc multithreading asynchronous

我在MVC中遇到过很多关于async / await好处的问题。他们提到重要的是不要阻塞请求线程,这样工作者线程可以同时处理不同的请求。直到这里它还可以轻松理解。

  • 但是我不明白正常和正常之间有什么区别 请求/工作线程?之间有这么大的区别吗? 二,以便释放工作线程和创建正常线程是这样的 有利?
  • 为什么请求线程的数量与常规数量相比有限 线程?
  • 请求线程是否更加占用内存?

请随意指点一些文章详细解释原因。

1 个答案:

答案 0 :(得分:3)

  

但是我不明白普通线程和请求/工作线程之间的区别是什么?

这不是释放线程的重点。释放线程的关键是,处理该请求负载所需的线程少一个。这反过来意味着您的服务可以处理更高的负载(以及更快速地更改负载)。

使用async / await可让您的网站进一步扩展(并且更快)。如果您的后端也是可扩展的(例如,云数据存储),那么使您的Web层可扩展可以使您的系统整体进一步扩展(并且更快)。

我在intro to async ASP.NET文章中对此进行了更多描述(以及图片!)。