Il semble que threading.local soit plus simple et plus robuste.Pourquoi les Pylons utilisent-ils StackedObjectProxies au lieu de threading.local?
Répondre
Pylons n'utilise pas de threading.locals simples pour 2 raisons:
1) ce serait une API plus intrusive qu'un proxy. Par exemple. request(). POST.get ('file') vs request.POST.get ('file')
2) StackedObjectProxys ne sont pas seulement sûrs pour les threads, mais aussi "sécurisé", ce qui signifie qu'il est sûr pour un pylône application à être intégré dans un autre et référencer les mêmes objets proxy. La nécessité de ce type de sécurité est rare, mais il est certainement possible avec combien il est facile pour les applications WSGI pour appeler d'autres applications WSGI + l'utilisation des objets globaux
Voir la paste.registry docs pour plus d'informations
Parce que threading.local
est nouveau dans Python 2.4. Le StackedObjectProxy
utilise threading.local s'il le peut. StackedObjectProxy utilise un threading.local en dessous de
- 1. threading.local équivalent pour twisted.web?
- 2. System.IO.UnmanagedMemoryStream - pourquoi Byte * au lieu de IntPtr
- 3. Pourquoi testerFixture au lieu de TestClass?
- 4. Pourquoi utiliser "out" au lieu de ref?
- 5. Pourquoi utiliser GWT.create() au lieu de new?
- 6. Pourquoi les pointeurs utilisent -> au lieu de.?
- 7. (. *) Au lieu de (. *?)
- 8. Pourquoi typeof est appelé opérateur au lieu de fonction?
- 9. Pourquoi CompositionTarget.Rendering prend EventArgs au lieu de RenderingEventArgs?
- 10. Pourquoi utiliser un singleton au lieu de méthodes statiques?
- 11. Pourquoi utiliser CComBSTR au lieu de simplement passer un WCHAR *?
- 12. Pourquoi devrais-je utiliser 1 table au lieu de deux?
- 13. Le déchiffrement renvoie 16 octets au lieu de 32, pourquoi?
- 14. NSOrderedDescending au lieu de NSOrderedSame pour des chaînes égales, pourquoi?
- 15. Pourquoi ai-je une page blanche au lieu de Joomla?
- 16. Pourquoi utilisons-nous des modèles au lieu de fonctions?
- 17. Pourquoi null == myVar au lieu de myVar == null?
- 18. Flash Builder 4 suggère mx1 au lieu de mx! Pourquoi?
- 19. PHP: Pourquoi classer avec !! $ var au lieu de (boolean) $ var?
- 20. Pylons questions de déploiement
- 21. jQuery: pourquoi $ .post fait un GET au lieu d'un POST
- 22. pourquoi Grails utilise "statique" vars au lieu des annotations
- 23. ValidateUser au lieu de LogonUser?
- 24. FTP passif au lieu de FTP actif
- 25. Pourquoi IE affiche-t-il les cases grises sous le contenu, au lieu de ci-dessus?
- 26. Pourquoi ne pas git-svn utiliser les référentiels Subversion UUID au lieu de son URL
- 27. Pourquoi PowerShell résout-il les chemins de $ home au lieu du répertoire courant?
- 28. phpmyadmin montrant MyISAM au lieu de InnoDB
- 29. Python coller en utilisant oeuf global au lieu de local
- 30. sorties php au lieu de -
Python 2.4 est venu sorti en 2004, donc je ne suis pas sûr que "nouveau" est le bon mot. –
Je ne fais que citer http://docs.python.org/library/threading.html#threading.local ;-) –