Selon ma connaissance singleton Object n'est pas thread-safe et session L'objet singleton Factory est thread-safe. Comment cela possible, S'il vous plaît expliquer quelqu'un.Quelle est la différence entre l'objet Singleton et l'objet singleton sessionfactory?
Répondre
Un objet de fabrique de session est également implémenté en utilisant le motif de conception singleton
.
Le motif de conception singleton peut être réalisé sous la forme thread safe
.
et ils ont mis en œuvre singleton avec thread sûr pour la fabrique de session. Lorsque nous implémentons singleton
, nous devons nous assurer que nous avons besoin de filetage sûr ou pas et nous devrions mettre en œuvre en conséquence.
voir la mise en œuvre de diverses singleton dans mon blog sous modèle de conception
Le singleton est ni thread-safe ne pas thread-safe en soi. Vous devez jeter un oeil à votre implémentation spécifique. La question majeure est, gère-t-elle l'état?
Si tel est le cas, vous vous assurez que pas plus d'un thread n'est autorisé à changer d'état en même temps. C'est le même problème que les variables globales souffrent en ce qui concerne la sécurité des threads. Mais il existe des mécanismes pour assurer cette sécurité, on s'appelle l'exclusion mutuelle. L'événement de deux threads modifiant simultanément la même variable est l'un des événements problématiques, il y a plus à savoir. Comme deux threads qui modifient séquentiellement une variable, la question est de savoir quelle réponse compte.
Des événements mutuellement exclusifs en général et une explication spécifique dans le contexte Java peuvent être trouvés respectivement here (Mutually exclusive events) et here (Oracle concurrency guide). Les variables globales sont expliquées here. Stateless et stateful sont également de bons termes à considérer en ce qui concerne concurrency, parallelism and thread-safety.
Retour à votre question: Une usine habituellement n'introduit aucun état et bien peut être librement partagée entre plusieurs threads. Les instances produites par l'usine sont très probablement à états et ne doivent être partagées entre thread qu'après les avoir rendues sécurisées.
Remarque importante: Mais ne vous méprenez pas ici. N'oubliez pas de toujours vérifier la mise en place de vos singletons! Dans Java, vous pouvez introduire des annotations pour documenter vos investigations et marquer des éléments de code spécifiques comme thread-safe. Il existe des paquets qui définissent déjà des annotations couramment utilisables pour documenter un tel comportement, jetez un oeil à l'apache org.apache.http.annotation. Lorsque vous utilisez une API, il est recommandé d'inspecter la documentation pour de tels conseils.
- 1. Quelle est la principale différence entre la classe statique et la classe Singleton
- 2. Quelle est la différence exacte entre la classe statique PHP et la classe singleton
- 3. quelle est la différence entre singleton et objet commun init par alloc méthode?
- 4. Quelle est la différence entre utiliser une classe singleton et une classe avec des méthodes statiques?
- 5. C# différence entre l'élément statique ou constructeur statique et singleton
- 6. Singleton et @Autowired renvoyant NULL
- 7. Différent entre le motif de module et le motif singleton?
- 8. Quelle est la différence entre Math et Array en Javascript?
- 9. Qu'entend-on par objet singleton et quelle est son utilisation?
- 10. Ruby Singleton et Shotgun
- 11. Quelle est la différence entre & et @ Sass
- 12. Quelle est la différence entre '==' et '==='?
- 13. Quelle est la différence entre "$^N" et "$ +"?
- 14. Quelle est la différence entre dict() et {}?
- 15. Quelle est la différence entre equales et ==
- 16. Quelle est la différence entre ~ et! opérateur?
- 17. Quelle est la différence entre = et: =
- 18. quelle est la différence entre:.! et: r !?
- 19. Quelle est la différence entre == et ===?
- 20. quelle est la différence entre == et ===?
- 21. quelle est la différence entre * et l'objet
- 22. Quelle est la différence entre `{}` et `[]`?
- 23. quelle est la différence entre '! =' Et
- 24. singleton
- 25. Indéfini référence à Singleton :: Singleton()
- 26. Ninject et Singleton
- 27. Singleton et DataSource
- 28. attechabilité et singleton
- 29. IEqualityComparer et singleton
- 30. Singleton, NSMutableDictionary et plist