Si une servlet implémente une interférence de modèle à un seul thread, comment le conteneur de servlet garantit-il que les servlets ne traitent qu'une seule requête à la fois? Même l'interface de modèle de fil unique n'a pas de méthodes aussi. Merci.Modèle à un seul fil
Répondre
Le conteneur de servlet crée un pool d'instances de servlet et garde la trace des instances actuellement "utilisées". Si toutes les instances sont "en cours d'utilisation" lorsqu'une nouvelle requête arrive, le conteneur peut soit attendre la libération d'un existant, soit créer une nouvelle instance pour gérer la requête. Cependant, le modèle à un seul thread n'est pas très répandu: il est préférable de rendre le servlet lui-même sans état et de gérer plusieurs requêtes simultanément.
Cela dépend de l'implémentation. Il peut créer le pool d'instances de servlet ou bien il peut simplement avoir une seule instance de servlet et en synchroniser l'accès. Ce dernier conduit à plus de contention.
http://java.sun.com/j2ee/1.4/docs/api/javax/servlet/SingleThreadModel.html
L'idée est de ne pas compter sur SingleThreadModel pour prendre soin de question de filetage. Comme il n'est pas obligatoire pour les conteneurs de servlet de se lier au contrat singlethreadmodel, il est conseillé de ne pas s'appuyer sur le conteneur pour instancier plusieurs instances de servlets.
- 1. has_many_polymorphs multiples dans un seul modèle
- 2. ReaderWriterLockSlim implémente un seul graveur ou nécessite un seul graveur?
- 3. Pourquoi Flex utilise-t-il un seul modèle fileté?
- 4. Exposer votre cœur sur le modèle de données fil
- 5. Mise à jour du modèle GEF à partir d'un fil d'arrière-plan
- 6. terminer un fil secondaire du fil principal (cacao)
- 7. Mappage du modèle d'URL à un seul RequestHandler dans une WSGIApplication
- 8. Comment détecter un fil bloqué?
- 9. Comment remplacer trois appels à un macrodef par un seul?
- 10. Comment lier un ASP.NET FormView à un seul enregistrement?
- 11. Comment passer un seul objet [] à un objet params []
- 12. Un seul client peut se connecter à un canal nommé
- 13. Maximiser un cadre Emacs à un seul moniteur avec Elisp
- 14. Mappage CSV à un modèle
- 15. XAML: se lier à un seul enfant dans une collection
- 16. Modèle de threading à remontage NET
- 17. XSLT - Sélectionnez un seul ensemble de données
- 18. Mise à jour de midlet sans fil
- 19. Insertion de plusieurs instances de modèle à l'aide d'un seul fichier db.put() sur Google App Engine
- 20. image chien d'arrêt dans un fil
- 21. Comment tuer un fil instantanément en C#?
- 22. Mercurial: Rétablir un seul morceau
- 23. Quelles techniques utilisez-vous lorsque vous concevez un modèle objet seul?
- 24. VB Syntaxe pour déclarer un seul modèle dans MVC (pour tirer parti des vues fortement typées)
- 25. Trouver le fil de premier plan à partir du fil d'arrière-plan
- 26. Deux modèles d'utilisateur ou un seul?
- 27. différents types d'entité dans un seul fetchedResultsController?
- 28. Tâche mise en commun de fil orienté
- 29. fil Accrocher sortie
- 30. Comment extraire un seul morceau d'octets à partir d'un fichier?
S'il vous plaît expliquer pourquoi STM n'est pas largement utilisé? – Warrior
De toute façon, vous devez résoudre tous les problèmes de threads - vous ne pouvez pas stocker d'état sensible mutable dans l'instance de servlet, car il y aura plusieurs instances - vous pouvez donc utiliser le modèle de thread simple pour commencer. Au moins, c'est mon point de vue. –
Donc, nous pouvons avoir une variable locale dans la méthode de service plutôt que la variable d'instance – Warrior