Cet article est un article miroir de traduction automatique, veuillez cliquer ici pour accéder à l’article original.

Vue: 27855|Répondre: 1

[Source] Java Thread Les principes locaux et la réutilisation multithread entraînent un encombrement de données

[Copié le lien]
Publié sur 01/11/2021 11:45:36 | | | |
En programmation, nous définissons des paramètres de méthode pour passer le contenu des variables ; si le niveau de la méthode d’exécution est profond, chaque méthode doit définir les paramètres à passer ; à ce moment-là, certaines variables peuvent être passées via ThreadLocal, tant que toutes les méthodes sont exécutées sur le même thread, la valeur de ThreadLocal peut être définie et lue.

La classe ThreadLocal est utilisée pour fournir des variables locales à l’intérieur du thread. Lorsque ces variables sont accédées (get/set) dans un environnement multithread, les variables de chaque thread sont relativement indépendantes des variables des autres threads.

ThreadLocal obtiendra d’abord le thread courant (Thread t = Thread.currentThread()) lors de l’exécution de la méthode set, et utilisera le thread courant pour obtenir un ThreadLocalMap ; si la carte n’est pas vide, cela signifie que le thread courant a une carte précédemment liée, puis mettra à jour la valeur de cette application, sinon, il s’utilisera comme clé pour placer la valeur dans la map, afin de réaliser la liaison des variables et des threads.



Testez le code, réglez le pool de threads pour maintenir un maximum de 5 threads, et lorsque nous appelons la méthode get ThreadLocal dans le cas du multi-threading, nous obtiendrons les données ThreadLocal (Ensemble de données par d’autres threads), nousLa méthode ThreadLocal set n’est pas appelée sur le thread courant pour définir les données, comme montré dans la figure ci-dessous :



Causes d’erreur :Une fois qu’un thread est réutilisé, il est probable que la première valeur obtenue à partir de ThreadLocal soit une valeur laissée par d’autres threads précédents

Parce que, après avoir terminé avec ThreadLocal sur le fil actuel,Assurez-vous d’appeler le démoin pour une purge en temps voulu。 Comme montré ci-dessous :



Code:

(Fin)





Précédent:Docker examine les paramètres de redémarrage des conteneurs et les conteneurs d’arrêt en vrac
Prochain:Jenkins (5) Présentation du groupe de projet
Publié sur 02/11/2021 21:30:12 |
Venez apprendre à nouveau.
Démenti:
Tous les logiciels, supports de programmation ou articles publiés par Code Farmer Network sont uniquement destinés à l’apprentissage et à la recherche ; Le contenu ci-dessus ne doit pas être utilisé à des fins commerciales ou illégales, sinon les utilisateurs assumeront toutes les conséquences. Les informations sur ce site proviennent d’Internet, et les litiges de droits d’auteur n’ont rien à voir avec ce site. Vous devez supprimer complètement le contenu ci-dessus de votre ordinateur dans les 24 heures suivant le téléchargement. Si vous aimez le programme, merci de soutenir un logiciel authentique, d’acheter l’immatriculation et d’obtenir de meilleurs services authentiques. En cas d’infraction, veuillez nous contacter par e-mail.

Mail To:help@itsvse.com