Python-slaap()
Python slaap()
De functie sleep() onderbreekt (wacht) de uitvoering van de huidige thread gedurende een bepaald aantal seconden.
Python heeft een module genaamd tijd die verschillende handige functies biedt om tijdgerelateerde taken uit te voeren. Een van de populaire functies onder hen is sleep()
.
De sleep()
functie onderbreekt de uitvoering van de huidige thread voor een bepaald aantal seconden.
Voorbeeld 1:Python sleep()
import time
print("Printed immediately.")
time.sleep(2.4)
print("Printed after 2.4 seconds.")
Dit programma werkt als volgt:
"Printed immediately"
wordt afgedrukt- Onderbreekt (vertraagt) de uitvoering gedurende 2,4 seconden.
"Printed after 2.4 seconds"
wordt afgedrukt.
Zoals je kunt zien in het bovenstaande voorbeeld, sleep()
neemt een getal met drijvende komma als argument.
Vóór Python 3.5 , kan de werkelijke opschortingstijd korter zijn dan het argument dat is opgegeven voor de time()
functie.
Sinds Python 3.5 , zal de schorsingstijd ten minste de gespecificeerde seconden zijn.
Voorbeeld 2:Python maakt een digitale klok
import time
while True:
localtime = time.localtime()
result = time.strftime("%I:%M:%S %p", localtime)
print(result)
time.sleep(1)
In het bovenstaande programma hebben we de huidige lokale tijd berekend en afgedrukt binnen de oneindige while-lus. Vervolgens wacht het programma 1 seconde. Nogmaals, de huidige lokale tijd wordt berekend en afgedrukt. Dit proces gaat door.
Wanneer u het programma uitvoert, zal de uitvoer zoiets zijn als:
02:10:50 PM 02:10:51 PM 02:10:52 PM 02:10:53 PM 02:10:54 PM ... .. ...
Hier is een licht gewijzigde betere versie van het bovenstaande programma.
import time
while True:
localtime = time.localtime()
result = time.strftime("%I:%M:%S %p", localtime)
print(result, end="", flush=True)
print("\r", end="", flush=True)
time.sleep(1)
Ga voor meer informatie naar de digitale klok in de Python-shell.
Multithreading in Python
Voordat we het hebben over sleep()
in programma's met meerdere threads, laten we het hebben over processen en threads.
Een computerprogramma is een verzameling instructies. Een proces is de uitvoering van die instructies.
Een thread is een subset van het proces. Een proces kan een of meer threads hebben.
Voorbeeld 3:Python-multithreading
Alle programma's hierboven in dit artikel zijn single-threaded programma's. Hier is een voorbeeld van een Python-programma met meerdere threads.
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()
Wanneer u het programma uitvoert, zal de uitvoer zoiets zijn als:
Hello Hello Hi Hello Hi Hi
Het bovenstaande programma heeft twee threads t1 en t2 . Deze threads worden uitgevoerd met t1.start()
en t2.start()
verklaringen.
Merk op dat, t1 en t2 gelijktijdig worden uitgevoerd en u krijgt mogelijk een andere uitvoer.
Bezoek deze pagina voor meer informatie over multithreading in Python.
time.sleep() in programma's met meerdere threads
De sleep()
functie onderbreekt de uitvoering van de huidige thread voor een bepaald aantal seconden.
In het geval van programma's met één thread, sleep()
schort de uitvoering van de thread en het proces op. De functie onderbreekt echter een thread in plaats van het hele proces in programma's met meerdere threads.
Voorbeeld 4:sleep() in een programma met meerdere threads
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()
Het bovenstaande programma heeft twee threads. We hebben time.sleep(0.5)
. gebruikt en time.sleep(0.75)
om de uitvoering van deze twee threads respectievelijk 0,5 seconden en 0,7 seconden op te schorten.
Aanbevolen literatuur: Python time.sleep() slaapt draad
Python