Plus précisément, je parle de Python. J'essaie de pirater quelque chose (juste un peu) en voyant la valeur d'un objet sans jamais le transmettre, et je me demande s'il est sûr d'utiliser thread local pour faire cela. Aussi, comment allez-vous même faire une telle chose?Est-ce que thread-local signifie thread sûr?
4
A
Répondre
6
No-thread local signifie que chaque thread obtient sa propre copie de cette variable. L'utiliser est (au moins normalement) thread-safe, simplement parce que chaque thread utilise sa propre variable, séparée des variables par le même nom qui est accessible aux autres threads. OTOH, ils ne sont pas (normalement) utiles pour la communication entre les threads.
Donc, je pourrais définir une variable dans module_x en utilisant 'my_psuedo_global = threading.local()' et ensuite y accéder d'une manière ou d'une autre dans module_y plus tard, sans casser thread-saftey? – orokusaki
Pas vraiment - alors que vous pourriez certainement passer une valeur d'une variable locale thread à l'autre via un (pseudo) global, vous auriez besoin de synchroniser l'accès au global comme vous l'avez fait. –