Funkcia Python sleep () (s príkladmi)

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

Zaujímavé články...