当前位置:  开发笔记 > 后端 > 正文

ASP.NET多线程如何?

如何解决《ASP.NET多线程如何?》经验,为你挑选了3个好方法。

我被告知在IIS中默认情况下ASP.NET是多线程的.这种线程是如何实现的?

服务器场是否向不同的核心发送不同的请求?

单个请求是否使用多个内核?

更重要的是,如果线程在IIS中更高的位置,那么将线程添加到ASP.NET代码是否有任何优势?



1> Jon Skeet..:

服务器不仅将不同的请求驻留到不同的线程,而且单个请求可以在生命周期的过程中更改线程.这称为线程敏捷性.我正在寻找一篇解释它的好文章......

编辑:还没有确定的文章,但一篇博客文章解释了一些困难.

编辑:评论的更多链接:

ASP.NET线程切换(博客文章)

什么是.NET中的"异步IO操作"?(所以问题;听起来不相关但不是)

ASP.NET和System.Diagnostics跟踪(SO问题)

线程化IIS 6和7之间的差异



2> Andrew Harry..:

ASP.net使用.Net线程池(可配置)每个请求都由线程池中的一个线程接收,直到每个线程都已被占用.然后请求在IIS堆栈上排队,直到这也溢出.从那里新的请求遇到非常丑陋的'服务器不可用'消息.

这是ASP.net网站通常的"多线程"故事.

有许多方法可以确保可伸缩性.最明显的是性能测试并消除代码中的瓶颈.

通过利用任何I/O请求的I/O线程,ASP.net可以真正利用多个内核.它使代码变得丑陋但快速从未变得漂亮.

以下是关于如何执行此操作的权威MSDN MAG帖子

UPDATE

好吧,我可能会尝试回答你的完整问题:

"更重要的是,如果线程在IIS中更高的位置,将线程添加到ASP.Net代码是否有任何优势?"

简短的回答是:这取决于!如果您正在等待长时间运行的进程,那么建议您为请求客户端实现更好的体验(即带外AJAX调用)

如果您有多个需要为请求客户端完成的独立任务:那么您可能最好生成一个新进程来并行运行任务.

如果您的站点获得大量流量,那么您确实需要考虑实现异步模式以更好地利用CPU



3> TheTXI..:

IIS自动使用多个核心(尽管您可以选择将其关闭).

将线程添加到ASP.NET代码的优点是,您可以控制自己的应用程序的内部工作,而不是被迫依赖IIS为您做出所有决定.

推荐阅读
帆侮听我悄悄说星星
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有