2016-11-22 60 views
2

我在MVC中遇到了很多有关异步/等待的好处的问题。他们提到,不要阻塞请求线程,这样工作线程可以同时处理不同的请求。直到这里,它是好的,容易理解。MVC异步/等待 - 为什么在长时间运行时释放线程很重要

  • 但我不明白请求/工作线程的正常和 之间的区别是什么? 之间有这么大的差异,所以释放工作者线程和创建正常线程是如此有利吗?
  • 为什么请求线程的数量与普通的 线程相比有限?
  • 请求线程的内存密集得多吗?

随意指点我一些文章解释更多细节的原因。

+3

这应该解释它:http://blog.stephencleary.com/2013/11/there-is-no-thread.html – Evk

回答

3

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

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

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

我在我的intro to async ASP.NET文章中描述了更多(并带有图片!)。