首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ASP.NET和请求线程池中的线程

ASP.NET和请求线程池中的线程
EN

Stack Overflow用户
提问于 2013-06-06 04:28:22
回答 1查看 1.5K关注 0票数 4

假设.NET框架维护了一个用于服务ASP.NET请求的线程池( .NET 4.5的默认线程池是5,000)。据说,长时间运行的高并发请求的大型应用程序可能会导致称为线程饥饿的情况。因此,应该对高延迟调用发出异步请求,以释放请求线程。

但是异步请求不是无论如何都会从线程池中产生另一个线程来完成它的工作吗?新线程是否来自与请求线程池不同的池,以及创建这些线程的数量是否有限制?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-06-06 05:22:07

,但是异步请求不会从线程池中产生另一个线程来完成它的工作吗?

是的,但只有在异步工作完成之后。当工作完成时(通常意味着等待磁盘或网络),异步代码不会阻塞线程。

新线程是否来自与请求线程池不同的池,以及创建这些线程的数量是否有限制?

ASP.NET没有单独的线程池。异步代码和ASP.NET使用相同的线程池,这意味着它们也共享相同的限制。

线程的限制并不是唯一的问题(如果是这样的话,您可以调用ThreadPool.SetMaxThreads()来增加它)。其他问题是每个线程使用1MB的内存,这对于32位应用程序来说是特别有问题的。此外,由于上下文切换,同时执行太多线程的效率很低。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16949226

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档