ASP.NET 和 AJAX 线程

标签 asp.net ajax multithreading iis isapi

引用这个问题:Is ASP.NET multithreaded (how does it execute requests) ,这是对线程的正确解释吗: ASP.NET 每个应用程序实例有一个工作进程。它是多线程的,使用自己的应用程序池。大多数线程用于服务(用户)请求。每个请求(用户 session )是一个线程。相应的响应可能是另一个线程。用户请求来自 ISAPI 的多个线程,ISAPI 本身就是多线程的。

AJAX 不是多线程的。它使用与非 AJAX 网站相同的线程模型。页面请求(ajax 或非 ajax)可能会导致在服务器上使用多个线程,但它在客户端仍然是一个线程(浏览器使用单个线程)。

最佳答案

简而言之,是的。在 ASP.NET 中,请求/响应通常在单个线程中处理......“请求”和“响应”之间没有明确的区别,它只是 ISAPI 将请求信息传递给 ASP.NET 处理程序,它将执行适当的代码并编写输出。 (虽然有一种机制可以在 ASP.NET 处于负载状态并且需要有效利用可用线程时将请求从一个线程迁移到另一个线程。但我不能 100% 确定何时或为什么会发生这种情况的详细级别。 )

浏览器端 JavaScript 和 AJAX 不是多线程的,但对某些人来说可能是多线程的,因为 AJAX 调用是异步的并且响应是事件驱动的;也就是说,一旦请求被发送到服务器,JavaScript 线程就不会被阻塞。向服务器发送更多请求是免费的,响应可能会也可能不会按照发送时的相同顺序返回。然而,因为核心实际上只有一个线程,如果两个响应同时返回,一个将阻塞另一个的执行,直到它完成。

关于ASP.NET 和 AJAX 线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/551277/

相关文章:

jquery - 每次 div 刷新时不显示加载图像

ajax - 使用 divi 的 header 迷你购物车在更改购物车商品计数时未更新 : Wordpress

Java : Is my method thread safe?

javascript - 使用 JavaScript 显示/隐藏 Div 内容

Mac OS X 10.5 上的 ASP.net 测试服务器?

c# - 无法获取 asp :RegularExpressionValidator to work

html - 如何显示存储在文件夹外的图像?

c# - MVC RedirectToAction 在 JSON 后返回后不起作用

java - 即使是单线程的Java应用程序,在没有数据库的情况下,有时不会出现数据不一致的问题吗?

c# - 有没有办法触发 2 个任务,等待一个任务完成(不取消另一个任务),然后在返回结果之前设置一个时间