Funcția sleep () suspendă (așteaptă) execuția firului curent pentru un număr dat de secunde.
Python are un modul numit time, care oferă mai multe funcții utile pentru a gestiona sarcinile legate de timp. Una dintre funcțiile populare dintre ele este sleep()
.
sleep()
Executie Funcția a firului suspendă curent pentru un anumit număr de secunde.
Exemplul 1: Python sleep ()
import time print("Printed immediately.") time.sleep(2.4) print("Printed after 2.4 seconds.")
Iată cum funcționează acest program:
"Printed immediately"
este tipărit- Suspendă (întârzieri) execuția timp de 2,4 secunde.
"Printed after 2.4 seconds"
este tipărit.
După cum puteți vedea din exemplul de mai sus, sleep()
ia ca argument un număr cu virgulă mobilă.
Înainte de Python 3.5 , timpul de suspendare efectiv poate fi mai mic decât argumentul specificat time()
funcției.
De la Python 3.5 , timpul de suspendare va fi de cel puțin secundele specificate.
Exemplul 2: Python creează un ceas digital
import time while True: localtime = time.localtime() result = time.strftime("%I:%M:%S %p", localtime) print(result) time.sleep(1)
În programul de mai sus, am calculat și tipărit ora locală curentă în interiorul buclei infinite while. Apoi, programul așteaptă 1 secundă. Din nou, ora locală curentă este calculată și tipărită. Acest proces continuă.
Când rulați programul, ieșirea va fi ceva de genul:
14:10:50 14:10:51 14:10:52 14:10:53 14:10:54 PM …
Iată o versiune mai bună ușor modificată a programului de mai sus.
import time while True: localtime = time.localtime() result = time.strftime("%I:%M:%S %p", localtime) print(result, end="", flush=True) print("", end="", flush=True) time.sleep(1)
Pentru a afla mai multe, vizitați ceasul digital în shell Python.
Multithreading în Python
Înainte de a vorbi despre acestea sleep()
în programe cu mai multe fire, să vorbim despre procese și fire.
Un program de calculator este o colecție de instrucțiuni. Un proces este executarea acestor instrucțiuni.
Un fir este un subset al procesului. Un proces poate avea unul sau mai multe fire.
Exemplul 3: Python multithreading
Toate programele de mai sus din acest articol sunt programe cu un singur fir. Iată un exemplu de program 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()
Când rulați programul, ieșirea va fi ceva de genul:
Salut Salut Salut Salut Salut Salut
Programul de mai sus are două fire t1 și t2. Aceste fire sunt rulate folosind t1.start()
și t2.start()
instrucțiuni.
Rețineți că, t1 și t2 rulează simultan și este posibil să obțineți rezultate diferite.
Accesați această pagină pentru a afla mai multe despre Multithreading în Python.
time.sleep () în programe multithread
sleep()
Executie Funcția a firului suspendă curent pentru un anumit număr de secunde.
În cazul programelor cu un singur fir, sleep()
suspendă execuția firului și a procesului. Cu toate acestea, funcția suspendă mai degrabă un fir decât întregul proces în programele cu mai multe fire.
Exemplul 4: sleep () într-un program 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()
Programul de mai sus are două fire. Am folosit time.sleep(0.5)
și time.sleep(0.75)
suspendat executarea acestor două fire pentru 0,5 secunde și respectiv 0,7 secunde.
Lectură recomandată: Python time.sleep () sleeps thread