Lorsque plusieurs threads accèdent à des données partagées, un seul thread doit accéder aux données partagées à la fois pour garantir la sécurité.
Si vous ne le rendez pas thread-safe pour les applications qui sont censées être utilisées par plusieurs personnes en même temps, vous serez dans un état où M. A acquiert involontairement des données que seul M. A devrait pouvoir voir. Je vais finir.
--Pour Java, utilisez des variables locales au lieu des variables de classe et des variables d'instance. --Cependant, il n'y a pas de problème avec les constantes autres que les variables locales qui sont utilisées statiquement et ne changent pas.
Les variables locales sont stockées dans une zone de mémoire appelée zone de pile Java, de sorte qu'elles ne sont accessibles que par un seul thread. En d'autres termes, il est conservé dans une zone de mémoire différente pour chaque thread et ne peut pas être référencé ou réécrit par d'autres threads. À propos, les variables de classe et les variables d'instance sont conservées dans une zone de mémoire appelée zone de tas, et cette zone est référencée par plusieurs threads.
Sachez que même si vous n'utilisez pas de variables de classe et d'instance dans les programmes Java, vous les utiliserez involontairement dans JSP.
<%! int count = 0; %>
Le JSP est compilé dans un servlet au moment de l'exécution, mais la déclaration ci-dessus est développée en tant que variable d'instance.
Recommended Posts