Je suis en train d'écrire une application en utilisant JSP & Jdbc, où j'ai un nom de table "COMMENT_DATA", Dans quel utilisateur peut poster leurs commentaires à ce sujet. Alors maintenant, si plus d'un utilisateur écrit des commentaires et les affiche en même temps, je vais pour les discussions. Donc, je vais synchroniser la méthode qui insère les données dans la base de données. Ensuite, comment gérer les autres demandes, c'est-à-dire, comment faire la queue aux autres demandes et comment les reprendre et les écrire dans la base de donnéesTraitement des demandes en utilisant des threads
Répondre
Exactement. Chaque requête HTTP est déjà un thread à part entière. Gardez à l'esprit que le conteneur Web créera une seule instance de servlet pendant la durée de vie de l'application et que le code de servlet est partagé entre toutes les demandes. Cela implique que toutes les variables de niveau classe ou les variables statiques vont être partagées entre toutes les demandes. Si vous avez une telle variable, c'est pas threadsafe. Vous devez déclarer les variables spécifiques à la requête threadlocal au niveau de la méthode. En ce qui concerne JDBC: il suffit d'écrire du code solide et tout devrait bien se passer. Utiliser un pool de connexions n'est utile que pour améliorer les performances de connexion (ce qui vaut vraiment la peine, croyez-moi, connecter la DB est une tâche assez coûteuse qui peut compter jusqu'à 200ms ou plus, tout en réutilisant une connexion à partir du pool presque rien). Cela ne change rien à la sécurité du code que vous écrivez, il est toujours sous votre contrôle/mains. Pour obtenir une image claire de la façon de faire le codage JDBC de base de la bonne façon, vous pouvez trouver this article utile.
Je ne sais pas pourquoi vous devez vous en préoccuper. Le conteneur de servlet va gérer le threading (par exemple, via un pool de threads). La base de données gère plusieurs connexions, donc si vous ne modifiez pas l'état partagé entre différents threads dans l'application, vous ne devriez pas avoir à vous en soucier.
Ensuite, le serveur prendra-t-il soin d'insérer des données dans la table par requête. – i2ijeya
Par demande? Oui –
Comme ci-dessus, le conteneur de servlet gérera le filetage des demandes pour vous. C'est à dire. pour chaque utilisateur différent de se connecte au serveur un nouveau thread sera créé sans que vous le sachiez.
Donc tout ce que vous avez à faire est de vous assurer que votre code jdbc est thread-safe et que tout devrait bien se passer. La base de données fera tout le verrouillage nécessaire pour vous :-)
Karl
- 1. Traitement des demandes FastCGI
- 2. Rails - Traitement des demandes distantes
- 3. Java Multi threading - Éviter le traitement des demandes en double
- 4. le traitement des demandes de validation « en silence »
- 5. en utilisant des threads dans la classe
- 6. Clustering utilisant des threads en Java
- 7. Traitement des données de diffusion en grand volume avec Twisted ou en utilisant des threads, file d'attente en Python
- 8. Comment traiter des données dans plusieurs threads en utilisant EJB3?
- 9. Printemps MVC - @Controller annotation et le traitement des demandes concurrentes
- 10. AppEngine des demandes de traitement Restlet, NullPointEerexception avec réponse DomRepresentation
- 11. Qu'est-ce qu'un pipeline de traitement des demandes?
- 12. Traiter n éléments à la fois (en utilisant des threads)
- 13. Traitement d'IOExceptions avec XmlWriter.Create() et XmlDocument.Load() dans des threads distincts
- 14. Threads et demandes de confusion
- 15. Exemple de liste liée utilisant des threads
- 16. Utilisation des threads en C++
- 17. traitement des options simple en utilisant la bibliothèque Boost (C++)
- 18. Besoin d'aide pour le traitement des documents en utilisant dom4j
- 19. traitement des données d'admission à l'hôpital en utilisant R
- 20. Traitement des courriels en C#
- 21. Rails duplication des demandes
- 22. sens des demandes RESTful
- 23. Traitement des interruptions dans Windows
- 24. Courrier électronique Suivi des demandes en double
- 25. Quelles sont les causes des demandes en double en utilisant spring, tomcat et hibernate?
- 26. Fermeture progressive des threads et de l'exécuteur
- 27. Traitement des valeurs 'vides'
- 28. Traitement d'image en mode multhithread utilisant Java
- 29. Traitement des erreurs en Python avec SUDS
- 30. Looping javascript obtenir des demandes
Le conteneur de servlet est déjà multithread, vous n'avez pas besoin de le faire vous-même. – skaffman