Maison >développement back-end >Tutoriel Python >Comment puis-je implémenter l'exécution continue de fonctions en Python tout en évitant le blocage des threads ?
Implémentation de l'exécution continue de fonctions en Python
Pour les tâches qui nécessitent une exécution continue à des intervalles spécifiés, Python propose diverses options. Une approche simple consiste à utiliser une simple boucle en conjonction avec la fonction sleep() du module time :
while True: # Code executed here time.sleep(60)
Bien que ce code semble atteindre le résultat souhaité, il existe des inconvénients potentiels à prendre en compte. Plus précisément, lorsque le code exécuté bloque le thread principal, il peut empêcher la fonction planifiée de s'exécuter à temps.
Solutions alternatives
Pour une planification plus robuste et flexible, envisagez le module sched, qui fournit un planificateur d'événements à usage général. En utilisant sched, vous pouvez définir et contrôler les événements planifiés, garantissant leur exécution dans les délais :
import sched, time def do_something(scheduler): # schedule the next call first scheduler.enter(60, 1, do_something, (scheduler,)) print("Doing stuff...") # then do your stuff my_scheduler = sched.scheduler(time.time, time.sleep) my_scheduler.enter(60, 1, do_something, (my_scheduler,)) my_scheduler.run()
Alternativement, si vous utilisez une bibliothèque de boucles d'événements dans votre programme (telle que asyncio, trio, tkinter ou PyQt5) , exploitez ses méthodes pour planifier des tâches dans la boucle d'événements existante. Cette approche assure une coordination et une réactivité optimales dans votre candidature.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!