2011-06-08 6 views
3

Je suis sûr que c'est un peu commun, donc je suis curieux de savoir quelles sont les façons acceptées/efficaces de le faire en Python. En d'autres termes, je suis simplement occupé à attendre la mise à jour d'une variable. En même temps, j'ai besoin d'un système de temporisation, mais je pense qu'il doit y avoir une meilleure façon de faire.Manière efficace d'attendre le changement d'état (changement de variable)?

Actuellement je fais quelque chose comme ceci:

wait_start = time.time() 
while state != NEW_STATE: 
    if time.time() - wait_start > timeout: 
     print "Timed out!" 
     # Do something 

# Continuing on... 

évidemment je ne peux pas dormir, parce que je dois savoir quand l'Etat a changé.

Alors, quelle est une méthode efficace de mise en œuvre d'un délai d'attente pour un changement d'état (variable)?

+0

ouch. quand état! = NEW_STATE, vous mangerez des cycles de cpu en vérifiant exactement –

+0

, j'ai pensé aux signaux, mais je me suis juste dit qu'il y avait une meilleure pratique acceptée pour ce genre de chose –

Répondre

1

Condition variables et events sont souvent utilisés pour ce type de chose. Les deux nécessitent une coopération du côté qui change la variable.

Questions connexes