Le stockage local de threads est-il utilisé ailleurs que pour rendre les variables globales et statiques locales à un thread? Cela est-il utile dans tout nouveau code que nous écrivons?Le stockage local de thread utilisé ailleurs?
Répondre
TLS peut certainement être utile dans un nouveau code. Si vous voulez une variable globale qui doit être spécifique à chaque thread, (comme errno
en C/C++), le thread-local-storage est le chemin à parcourir.
Ces jours errno
est généralement placé dans le stockage local de threads.
Il existe certaines situations (par exemple: bibliothèques partagées telles que les DLL nécessitant un code de démarrage) où l'utilisation du stockage local au thread peut poser problème.
Objets singleton spécifiques au filetage? Un serveur Web multithread où chaque thread traite une requête, il y a une bonne possibilité de certaines données TLS (comme l'URL de requête ou certaines connexions de base de données, essentiellement des ressources destinées à être utilisées à tout moment lors de la gestion des requêtes si nécessaire) afin qu'ils puissent être facilement accessibles n'importe où dans le code lorsque cela est nécessaire.
omfg le mot S ... :( –
Singleton Global, même différence. –
Je n'ai-elle nécessaire pour le traitement des erreurs spécifiques au fil et l'optimisation (en C):
__thread int cpfs_errno;
static __thread struct Cpfs *g_cpfs;
Dans cet exemple, cela me permet le passage d'un pointeur de contexte de struct Cpfs *
à travers des dizaines de fonctions dans lesquelles ça ne change jamais.
- 1. Numéros aléatoires et stockage local thread
- 2. Stockage local de threads
- 3. Stockage local de threads
- 4. Stockage local de thread et variables de méthode locale
- 5. Segfaults de stockage local par thread sur NetBSD uniquement?
- 6. stockage local et stockage de session
- 7. Implémentation de stockage local de threads Linux
- 8. "System.InvalidOperationException: l'objet est actuellement utilisé ailleurs" - comment résoudre ce problème?
- 9. Stockage local Silverlight
- 10. Parallel.ForEach stockage local
- 11. comment émuler le stockage local de thread à l'espace utilisateur en C++?
- 12. Stockage local ASP.NET HttpApplication
- 13. Question de stockage spécifique à Boost Thread (boost/thread/tss.hpp)
- 14. Tri du stockage local HTML5
- 15. Stockage local géré pour blobs
- 16. Google Chrome extension: stockage local
- 17. Stockage local exposé aux utilisateurs
- 18. comment compiler thread local de stockage (TLS) sur 64 bits solaris sparc avec g ++
- 19. MySQL: Quelqu'un at-il utilisé le moteur de stockage TokuDB?
- 20. objet modifié après l'état de l'objet ou le stockage utilisé
- 21. "stockage local-thread non pris en charge pour cette cible", #ifdef?
- 22. Est-ce que thread-local signifie thread sûr?
- 23. Plugin JQuery pour le stockage local html 5?
- 24. Comment synchroniser HTML5 local/webStorage et le stockage côté serveur?
- 25. Android: comment obtenir le stockage utilisé par une application
- 26. tout dommage dans l'objet de demande django put dans le thread local dict?
- 27. processeur (core) est utilisé par thread spécifique
- 28. Espace de noms HTML 5 clés de stockage local
- 29. Les fichiers de stockage local Android sont effacés au redémarrage
- 30. faire des données de stockage cassandra sur un nœud local
java.text.DateFormat est un bon exemple. Vous pouvez le réutiliser, mais il n'est pas sûr pour les threads, donc un bon moyen de travailler avec DateFormat en toute sécurité sans en créer un nouveau à chaque fois est de le stocker dans un ThreadLocal. – cjstehno