2010-02-15 5 views
1

Si j'ai un site et que chaque requête a son propre thread, cela signifie-t-il que 1000 visiteurs généreront 1000 threads? Comment cela fonctionne (évidemment, cela ne peut pas être juste)?Threads et demandes de confusion

Merci

Répondre

4

Discussions dans ASP.NET sont traitées par l'intermédiaire d'un ThreadPool.

Les demandes sont regroupées dans le ThreadPool, de sorte que chaque requête peut être gérée par un thread différent, mais les threads peuvent être réutilisés, empêchant le scénario 1000 threads pour 1000 requêtes que vous avez mentionné.

Pour plus de détails, voir CodeProject article on Multi-Threading in ASP.NET.

0

Oui, c'est vrai. Si vous avez 1 thread par visiteur et 1000 visiteurs, cela fait 1000 threads. Il se peut que cela ne fonctionne pas bien, mais c'est une autre question.

Fr applications serveur multi-thread, vous avez généralement 3 systèmes d'allocation différents:

  • 1 fil pour tous les visiteurs - chacun prend à son tour;
  • 1 fil par visiteur - évident;
  • une combinaison pour les 2 - 1 pools de threads (disons 10) et les visiteurs en obtiennent 1 chacun jusqu'à ce qu'ils soient tous utilisés après quoi les nouveaux visiteurs attendent.