J'ai un fil qui mesure toutes les 10ms une valeur de tension (capturée à partir d'un périphérique externe), applique un filtrage passe-bas élémentaire et stocke la valeur dans une variable lp_voltage
. Toutes les quelques secondes, le programme principal doit lire la valeur enregistrée dans lp_voltage
.Lire la valeur d'un thread dans Python: file d'attente ou variable globale?
J'ai compris deux méthodes pour éventuellement faire avec le cadre threading
:
- Sharing the global variable
lp_voltage
between the thread and the main program, en utilisant le mot-cléglobal
dans le fil. Cela a l'inconvénient de devoir utiliser des varialbles globaux, qui sont often considered bad practice. - Using the Queue module, qui ressemble plus pythonic. Cependant, je ne sais pas comment l'adapter à mon problème: le programme principal doit seulement accéder à la valeur instantanée du
lp_voltage
de temps en temps, et pas à une file d'attente complète de données.
Quelle est la meilleure option? Si les files d'attente sont mieux, comment les adapter à mon problème?
J'ai fini par utiliser une solution comme celle que vous proposez, et cela a bien fonctionné. La seule différence est que le code principal I est sorti de la classe, et appelé à la place lire la propriété 'lp_voltage' de l'objet' task'. –