A sleep () függvény egy adott másodpercre felfüggeszti (megvárja) az aktuális szál végrehajtását.
A Python rendelkezik egy idő nevű modullal, amely számos hasznos funkcióval rendelkezik az idővel kapcsolatos feladatok kezeléséhez. Az egyik legnépszerűbb funkció köztük sleep()
.
A sleep()
függvény egy adott másodpercre felfüggeszti az aktuális szál végrehajtását.
1. példa: Python sleep ()
import time print("Printed immediately.") time.sleep(2.4) print("Printed after 2.4 seconds.")
A program így működik:
"Printed immediately"
van nyomtatva- A végrehajtást 2,4 másodpercre felfüggeszti.
"Printed after 2.4 seconds"
van nyomtatva.
Amint a fenti példából láthatja, sleep()
egy lebegőpontos számot vesz fel argumentumként.
A Python 3.5 előtt a tényleges felfüggesztési idő rövidebb lehet, mint a time()
függvényhez megadott argumentum .
A Python 3.5 óta a felfüggesztés ideje legalább a megadott másodperc lesz.
2. példa: A Python létrehoz egy digitális órát
import time while True: localtime = time.localtime() result = time.strftime("%I:%M:%S %p", localtime) print(result) time.sleep(1)
A fenti programban kiszámoltuk és kinyomtattuk az aktuális helyi időt a végtelen míg hurokban. Ezután a program 1 másodpercet vár. Ismét kiszámoljuk és kinyomtatjuk az aktuális helyi időt. Ez a folyamat folytatódik.
A program futtatásakor a kimenet valami hasonló lesz:
14:10:50 PM 14:10:51 PM 14:10:52 PM 14:10:53 PM 14:10:54 PM…
Itt van a fenti program kissé módosított jobb verziója.
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)
További információért keresse fel a digitális órát a Python shellben.
Többszálas Pythonban
Mielőtt sleep()
többszálú programokban beszélnénk róla, beszéljünk a folyamatokról és a szálakról.
A számítógépes program az utasítások gyűjteménye. A folyamat az utasítások végrehajtása.
A szál a folyamat részhalmaza. Egy folyamatnak lehet egy vagy több szála.
3. példa: Python multithreading
A cikkben található összes program egyszálú program. Íme egy példa egy többszálas Python programra.
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()
A program futtatásakor a kimenet valami hasonló lesz:
Hello Hello Hello Hello Hello Hello
A fenti programnak két t1 és t2 szála van. Ezeket a szálakat t1.start()
és t2.start()
utasításokat futtatjuk .
Vegye figyelembe, hogy a t1 és a t2 egyidejűleg fut, és előfordulhat, hogy más kimenetet kap.
Látogasson el erre az oldalra, ha többet szeretne megtudni a Multithreadingről a Pythonban.
time.sleep () többszálú programokban
A sleep()
függvény egy adott másodpercre felfüggeszti az aktuális szál végrehajtását.
Egyszálú programok esetén sleep()
felfüggeszti a szál és a folyamat végrehajtását. A függvény azonban egy szálat függeszt fel, nem pedig az egész folyamatot a többszálas programokban.
4. példa: sleep () többszálú programban
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()
A fenti programnak két szála van. Van használt time.sleep(0.5)
és time.sleep(0.75)
a felfüggesztésére a két szál 0,5 másodperc és 0,7 másodperc volt.
Ajánlott olvasmány: Python time.sleep () alszik szálat