【发布时间】:2013-12-25 20:04:46
【问题描述】:
我刚开始使用 .NET 异步编程,每个人都说它更适合服务器端代码,因为如果我使用异步密钥,ASP.NET 不会为每个请求创建线程,而是会为所有异步代码重用相同的线程.
因为每个线程都需要堆栈,并且可能有数百个线程,它可以节省大量内存,例如:
regular: 1500 threads x 2mb = 3000 mb
async: 20 threads x 2mb = 40 mb
但这是否意味着异步代码在没有堆栈的情况下执行?或者它存储在哪里以及 .NET 如何使用它?
【问题讨论】:
-
请注意,异步在所有方面都不是完全“对服务器更好”。权衡更复杂。
标签: c# asp.net .net async-await