现在,通过减少处理请求的线程数来尝试提高Web服务器的可伸缩性,以防止不必要的上下文切换有数十个或数百个线程。在等待某种应用程序事件进行“长轮询”(即COMET)请求时,这一点尤其重要 - 使用整个线程的所有资源并且不执行任何操作是非常粗鲁的。
Node.ns是一个减少线程数的极端例子,要求处理程序在等待任何事件时放弃处理所有HTTP请求的单线程(甚至是来自本地磁盘的I / O!)。通过这种方式,CPU内核忙于执行有用的计算工作,而不是“浪费”指令暂停和恢复许多不同的线程。
但是,一旦等待事件完成,安排恢复处理程序通常需要处理程序API中的显式支持。例如,Java Servlet规范的一部分专门处理“异步”响应。
那么,ASP.NET是否有类似的API用于异步响应(又名。延续,又名。(有点松散)'反应堆模式')?是否存在直接解决此问题及其与IIS交互的权威文档? ASP.NET / IIS使用什么术语来引用这些属性?
我很快就会来到IIS / .NET,如果我可以提供帮助,我不想编写任何不必要的'每个请求线程'的代码。我会优先使用C#。