J'ai un thread qui l'interrogation d'un morceau de matériel.
while not hardware_is_ready():
pass
process_data_from_hardware()
Mais il y a d'autres fils (et des processus!) qui pourrait avoir des choses à faire. Si oui, je ne veux pas brûler les cpu vérification du matériel tous les autres instructions. Il a été un moment depuis que j'ai traités avec filetage, et quand je l'ai fait il n'était pas de Python, mais je crois que la plupart des bibliothèques de threading ont un yield
fonction ou quelque chose qui permet à un thread pour dire le planificateur de "Donner les autres threads d'une chance."
while not hardware_is_ready():
threading.yield() # This function doesn't exist.
process_data_from_hardware()
Mais je ne peux pas trouver aucune référence à quelque chose comme ça dans le thread de la documentation. Python a un yield
déclaration, mais je suis assez sûr que c'est quelque chose de complètement différent (à faire avec des générateurs).
Quel est la bonne chose à faire ici?