2009-02-15 8 views
2

En référençant cette question: Is ASP.NET multithreaded (how does it execute requests), est-ce une interprétation correcte du filetage: ASP.NET a un processus de travail par instance d'application. Il est multi-thread, en utilisant son propre pool d'applications. La majorité des threads sont utilisés pour la demande de service (utilisateur). Chaque requête (session utilisateur) est un thread. La réponse correspondante peut être un autre thread. La requête de l'utilisateur provient de plusieurs threads provenant d'ISAPI, lui-même multithread.Filetage ASP.NET & AJAX

AJAX n'est pas multithread. Il utilise le même modèle de threading que les sites Web non AJAX. La requête de page (ajax ou non ajax) peut entraîner l'utilisation de plusieurs threads sur le serveur, mais il s'agit toujours d'un thread sur le client (le navigateur utilise un seul thread).

Répondre

2

Bref, oui. Dans ASP.NET, la requête/réponse est normalement traitée dans un seul thread ... il n'y a pas de distinction claire entre "request" et "response", c'est simplement ISAPI qui transmet les informations de la requête au gestionnaire ASP.NET et exécute le code approprié et écrire une sortie. (Bien qu'il existe un mécanisme pour migrer une requête d'un thread à l'autre quand ASP.NET est en charge et doit utiliser efficacement les threads disponibles, je ne suis pas sûr à 100% à un niveau détaillé sur quand et pourquoi cela se produit.

Le JavaScript côté navigateur et AJAX ne sont pas multithread, mais cela peut apparaître comme certains car les appels AJAX sont asynchrones et les réponses sont pilotées par les événements; c'est-à-dire qu'une fois la requête envoyée au serveur, le thread JavaScript n'est pas bloqué. Il est libre d'envoyer plus de demandes au serveur, et les réponses peuvent ou ne peuvent pas revenir dans le même ordre que celui où elles ont été envoyées. Cependant, parce qu'au fond il n'y a vraiment qu'un seul thread, si deux réponses reviennent en même temps, l'une bloquera l'exécution de l'autre jusqu'à ce qu'elle soit terminée.