Sommeil Python()
Veille Python()
La fonction sleep() suspend (attend) l'exécution du thread en cours pendant un nombre donné de secondes.
Python a un module nommé time qui fournit plusieurs fonctions utiles pour gérer les tâches liées au temps. L'une des fonctions populaires parmi elles est sleep()
.
Le sleep()
la fonction suspend l'exécution du thread en cours pendant un nombre de secondes donné.
Exemple 1 :Python sleep()
import time
print("Printed immediately.")
time.sleep(2.4)
print("Printed after 2.4 seconds.")
Voici comment ce programme fonctionne :
"Printed immediately"
est imprimé- Suspend (retarde) l'exécution pendant 2,4 secondes.
"Printed after 2.4 seconds"
est imprimé.
Comme vous pouvez le voir dans l'exemple ci-dessus, sleep()
prend un nombre à virgule flottante comme argument.
Avant Python 3.5 , le temps de suspension réel peut être inférieur à l'argument spécifié pour le time()
fonction.
Depuis Python 3.5 , le temps de suspension sera d'au moins les secondes spécifiées.
Exemple 2 :Python crée une horloge numérique
import time
while True:
localtime = time.localtime()
result = time.strftime("%I:%M:%S %p", localtime)
print(result)
time.sleep(1)
Dans le programme ci-dessus, nous avons calculé et imprimé l'heure locale actuelle dans la boucle while infinie. Ensuite, le programme attend 1 seconde. Encore une fois, l'heure locale actuelle est calculée et imprimée. Ce processus continue.
Lorsque vous exécutez le programme, la sortie sera quelque chose comme :
02:10:50 PM 02:10:51 PM 02:10:52 PM 02:10:53 PM 02:10:54 PM ... .. ...
Voici une meilleure version légèrement modifiée du programme ci-dessus.
import time
while True:
localtime = time.localtime()
result = time.strftime("%I:%M:%S %p", localtime)
print(result, end="", flush=True)
print("\r", end="", flush=True)
time.sleep(1)
Pour en savoir plus, consultez l'horloge numérique dans le shell Python.
Multithreading en Python
Avant de parler de sleep()
dans les programmes multithreads, parlons des processus et des threads.
Un programme informatique est un ensemble d'instructions. Un processus est l'exécution de ces instructions.
Un thread est un sous-ensemble du processus. Un processus peut avoir un ou plusieurs threads.
Exemple 3 :multithreading Python
Tous les programmes ci-dessus dans cet article sont des programmes à thread unique. Voici un exemple de programme Python multithread.
import threading
def print_hello_three_times():
for i in range(3):
print("Hello")
def print_hi_three_times():
for i in range(3):
print("Hi")
t1 = threading.Thread(target=print_hello_three_times)
t2 = threading.Thread(target=print_hi_three_times)
t1.start()
t2.start()
Lorsque vous exécutez le programme, la sortie sera quelque chose comme :
Hello Hello Hi Hello Hi Hi
Le programme ci-dessus a deux threads t1 et t2 . Ces threads sont exécutés en utilisant t1.start()
et t2.start()
déclarations.
Notez que, t1 et t2 s'exécutent simultanément et vous pouvez obtenir un résultat différent.
Visitez cette page pour en savoir plus sur le multithreading en Python.
time.sleep() dans les programmes multithreads
Le sleep()
la fonction suspend l'exécution du thread en cours pendant un nombre de secondes donné.
Dans le cas de programmes mono-thread, sleep()
suspend l'exécution du thread et du processus. Cependant, la fonction suspend un thread plutôt que l'ensemble du processus dans les programmes multithreads.
Exemple 4 :sleep() dans un programme multithread
import threading
import time
def print_hello():
for i in range(4):
time.sleep(0.5)
print("Hello")
def print_hi():
for i in range(4):
time.sleep(0.7)
print("Hi")
t1 = threading.Thread(target=print_hello)
t2 = threading.Thread(target=print_hi)
t1.start()
t2.start()
Le programme ci-dessus a deux threads. Nous avons utilisé time.sleep(0.5)
et time.sleep(0.75)
pour suspendre l'exécution de ces deux threads pendant 0,5 seconde et 0,7 seconde respectivement.
Lecture recommandée : Python time.sleep() dort le thread
Python