Funkcija spanja () zadrži (čaka) izvajanje trenutne niti za določeno število sekund.
Python ima modul z imenom time, ki ponuja več uporabnih funkcij za obdelavo časovno povezanih nalog. Ena izmed priljubljenih funkcij med njimi je sleep()
.
V sleep()
funkcija prekine izvajanje trenutnega nit za določeno število sekund.
Primer 1: Python sleep ()
import time print("Printed immediately.") time.sleep(2.4) print("Printed after 2.4 seconds.")
Ta program deluje tako:
"Printed immediately"
je natisnjeno- Začasno ustavi (zakasni) izvajanje za 2,4 sekunde.
"Printed after 2.4 seconds"
je natisnjeno.
Kot lahko vidite iz zgornjega primera, sleep()
za argument vzame število s plavajočo vejico.
Pred Pythonom 3.5 je dejanski čas zaustavitve lahko krajši od argumenta, določenega za time()
funkcijo.
Od Pythona 3.5 bo čas zaustavitve določen vsaj v sekundah.
2. primer: Python ustvari digitalno uro
import time while True: localtime = time.localtime() result = time.strftime("%I:%M:%S %p", localtime) print(result) time.sleep(1)
V zgornjem programu smo izračunali in natisnili trenutni lokalni čas znotraj neskončne zanke while. Nato program čaka 1 sekundo. Ponovno se izračuna in natisne trenutni lokalni čas. Ta postopek se nadaljuje.
Ko zaženete program, bo rezultat približno tak:
14:10:50 14:10:51 14:10:52 14:10:53 14:10:54…
Tu je nekoliko spremenjena boljša različica zgornjega programa.
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)
Če želite izvedeti več, obiščite digitalno uro v lupini Python.
Večnitnost v Pythonu
Preden se pogovarjamo o sleep()
večnitnih programih, se pogovorimo o procesih in nitih.
Računalniški program je zbirka navodil. Postopek je izvajanje teh navodil.
Nit je podskupina procesa. Proces ima lahko eno ali več niti.
3. primer: Pythonova večnitnost
Vsi zgornji programi v tem članku so enonitni programi. Tu je primer večnitnega programa Python.
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()
Ko zaženete program, bo rezultat približno tak:
Pozdravljeni Pozdravljeni Pozdravljeni Pozdravljeni Živjo
Zgornji program ima dve niti t1 in t2. Te teme se izvajajo z uporabo t1.start()
in t2.start()
izjave.
Upoštevajte, da se t1 in t2 izvajata sočasno in morda dobite drugačne rezultate.
Obiščite to stran, če želite izvedeti več o večnitnosti v Pythonu.
time.sleep () v večnitnih programih
V sleep()
funkcija prekine izvajanje trenutnega nit za določeno število sekund.
V primeru enonitnih programov sleep()
ustavi izvajanje niti in postopek. Vendar pa funkcija v večnitnih programih začasno ustavi nit in ne celotnega procesa.
4. primer: spanje () v večnitnem programu
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()
Zgornji program ima dve niti. Uporabili smo time.sleep(0.5)
in time.sleep(0.75)
začasno ustavili izvajanje teh niti za 0,5 sekunde oziroma 0,7 sekunde.
Priporočeno branje: Python time.sleep () spi nit