Funkcia sleep () pozastaví (čaká) vykonávanie aktuálneho vlákna na daný počet sekúnd.
Python má modul s názvom čas, ktorý poskytuje niekoľko užitočných funkcií na zvládnutie úloh súvisiacich s časom. Jednou z populárnych funkcií medzi nimi je sleep()
.
Na sleep()
funkciu pozastaví výkon aktuálne vlákno pre daný počet sekúnd.
Príklad 1: Python sleep ()
import time print("Printed immediately.") time.sleep(2.4) print("Printed after 2.4 seconds.")
Tento program funguje nasledovne:
"Printed immediately"
je vytlačený- Pozastaví (oneskorí) vykonávanie na 2,4 sekundy.
"Printed after 2.4 seconds"
je vytlačený.
Ako vidíte z vyššie uvedeného príkladu, sleep()
berie ako argument číslo s pohyblivou rádovou čiarkou.
Pred Pythonom 3.5 môže byť skutočný čas pozastavenia kratší ako argument uvedený pre time()
funkciu.
Od verzie Python 3.5 bude čas pozastavenia stanovený minimálne na sekundy.
Príklad 2: Python vytvorí digitálne hodiny
import time while True: localtime = time.localtime() result = time.strftime("%I:%M:%S %p", localtime) print(result) time.sleep(1)
Vo vyššie uvedenom programe sme vypočítali a vytlačili aktuálny miestny čas vo vnútri nekonečnej slučky while. Potom program počká na 1 sekundu. Opäť sa počíta a tlačí aktuálny miestny čas. Tento proces pokračuje.
Keď spustíte program, výstup bude asi ako:
14:10:50 14:10:51 14:10:52 14:10:53 14:10:54…
Tu je mierne upravená lepšia verzia vyššie uvedeného programu.
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)
Ak sa chcete dozvedieť viac, navštívte digitálne hodiny v prostredí Pythonu.
Multithreading v Pythone
Predtým, ako začneme hovoriť o sleep()
viacvláknových programoch, povedzme si niečo o procesoch a vláknach.
Počítačový program je zbierka pokynov. Proces je vykonávanie týchto pokynov.
Vlákno je podmnožinou procesu. Proces môže mať jedno alebo viac vlákien.
Príklad 3: Pythonové multithreading
Všetky programy uvedené v tomto článku sú jednovláknové programy. Tu je príklad viacvláknového programu 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()
Keď spustíte program, výstup bude asi ako:
Ahoj Ahoj Ahoj Ahoj Ahoj Ahoj
Vyššie uvedený program má dve vlákna t1 a t2. Tieto vlákna sa spúšťajú pomocou príkazov t1.start()
a t2.start()
.
Upozorňujeme, že t1 a t2 bežia súbežne a môžete získať odlišný výstup.
Navštívte túto stránku a dozviete sa viac o multithreadingu v Pythone.
time.sleep () vo viacvláknových programoch
Na sleep()
funkciu pozastaví výkon aktuálne vlákno pre daný počet sekúnd.
V prípade programov s jedným sleep()
vláknom pozastaví vykonávanie vlákna a procesu. Táto funkcia však vo viacvláknových programoch pozastavuje vlákno namiesto celého procesu.
Príklad 4: sleep () vo viacvláknovom programe
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()
Vyššie uvedený program má dve vlákna. Použili sme time.sleep(0.5)
a time.sleep(0.75)
pozastavili sme vykonávanie týchto dvoch vlákien na 0,5 sekundy, respektíve 0,7 sekundy.
Odporúčame prečítať : Python time.sleep () spí vlákno