Funkce sleep () pozastaví (čeká) provádění aktuálního vlákna na daný počet sekund.
Python má modul s názvem čas, který poskytuje několik užitečných funkcí pro zpracování úkolů souvisejících s časem. Jednou z populárních funkcí mezi nimi je sleep()
.
Na sleep()
funkci pozastaví výkon aktuální vlákno pro daný počet sekund.
Příklad 1: Python sleep ()
import time print("Printed immediately.") time.sleep(2.4) print("Printed after 2.4 seconds.")
Tento program funguje takto:
"Printed immediately"
je vytištěn- Pozastaví (zpožďuje) provádění na 2,4 sekundy.
"Printed after 2.4 seconds"
je vytištěn.
Jak vidíte z výše uvedeného příkladu, sleep()
bere jako argument číslo s plovoucí desetinnou čárkou.
Před Pythonem 3.5 může být skutečný čas pozastavení menší než argument zadaný pro time()
funkci.
Od Pythonu 3.5 bude doba pozastavení stanovena alespoň na sekundy.
Příklad 2: Python vytvoří digitální hodiny
import time while True: localtime = time.localtime() result = time.strftime("%I:%M:%S %p", localtime) print(result) time.sleep(1)
Ve výše uvedeném programu jsme vypočítali a vytiskli aktuální místní čas uvnitř nekonečné smyčky while. Poté program čeká 1 sekundu. Aktuální místní čas je opět vypočítán a vytištěn. Tento proces pokračuje.
Když spustíte program, výstup bude něco jako:
14:10:50 odpoledne 14:10:51 odpoledne 14:10:52 odpoledne 14:10:53 odpoledne 14:10:54 odpoledne…
Zde je mírně upravená lepší verze výše 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)
Chcete-li se dozvědět více, navštivte digitální hodiny v prostředí Pythonu.
Vícevláknové zpracování v Pythonu
Než sleep()
začneme hovořit o vícevláknových programech, promluvme si o procesech a vláknech.
Počítačový program je soubor pokynů. Proces je provádění těchto pokynů.
Vlákno je podmnožinou procesu. Proces může mít jedno nebo více vláken.
Příklad 3: Vícevláknové zpracování v Pythonu
Všechny programy uvedené v tomto článku jsou programy s jedním podprocesem. Zde je příklad vícevlá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()
Když spustíte program, výstup bude něco jako:
Ahoj Ahoj Ahoj Ahoj Ahoj Ahoj
Výše uvedený program má dvě vlákna t1 a t2. Tato vlákna se spouštějí pomocí příkazů t1.start()
a t2.start()
.
Všimněte si, že t1 a t2 běží souběžně a můžete získat jiný výstup.
Na této stránce najdete další informace o multithreadingu v Pythonu.
time.sleep () ve vícevláknových programech
Na sleep()
funkci pozastaví výkon aktuální vlákno pro daný počet sekund.
V případě programů s jedním sleep()
vláknem pozastaví provádění vlákna a procesu. Funkce však pozastavuje vlákno spíše než celý proces ve vícevláknových programech.
Příklad 4: sleep () ve vícevláknovém 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()
Výše uvedený program má dvě vlákna. Použili jsme time.sleep(0.5)
a time.sleep(0.75)
pozastavili provádění těchto dvou vláken na 0,5 sekundy, respektive 0,7 sekundy.
Doporučené čtení: Python time.sleep () sleeps thread