Python-Schlaf()
Python-Schlaf()
Die Funktion sleep() unterbricht (wartet) die Ausführung des aktuellen Threads für eine bestimmte Anzahl von Sekunden.
Python hat ein Modul namens time, das mehrere nützliche Funktionen zur Bearbeitung zeitbezogener Aufgaben bietet. Eine der beliebtesten Funktionen unter ihnen ist sleep()
.
Die sleep()
Funktion unterbricht die Ausführung des aktuellen Threads für eine bestimmte Anzahl von Sekunden.
Beispiel 1:Python sleep()
import time
print("Printed immediately.")
time.sleep(2.4)
print("Printed after 2.4 seconds.")
So funktioniert dieses Programm:
"Printed immediately"
wird gedruckt- Unterbricht (verzögert) die Ausführung für 2,4 Sekunden.
"Printed after 2.4 seconds"
wird gedruckt.
Wie Sie im obigen Beispiel sehen können, sleep()
nimmt eine Fließkommazahl als Argument.
Vor Python 3.5 , kann die tatsächliche Suspendierungszeit kürzer sein als das für time()
angegebene Argument Funktion.
Seit Python 3.5 , beträgt die Aussetzungszeit mindestens die angegebenen Sekunden.
Beispiel 2:Python erstellt eine Digitaluhr
import time
while True:
localtime = time.localtime()
result = time.strftime("%I:%M:%S %p", localtime)
print(result)
time.sleep(1)
Im obigen Programm haben wir die aktuelle Ortszeit innerhalb der unendlichen While-Schleife berechnet und ausgegeben. Dann wartet das Programm 1 Sekunde. Auch hier wird die aktuelle Ortszeit berechnet und ausgedruckt. Dieser Prozess geht weiter.
Wenn Sie das Programm ausführen, sieht die Ausgabe in etwa so aus:
02:10:50 PM 02:10:51 PM 02:10:52 PM 02:10:53 PM 02:10:54 PM ... .. ...
Hier ist eine leicht modifizierte bessere Version des obigen Programms.
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)
Um mehr zu erfahren, besuchen Sie die Digitaluhr in der Python-Shell.
Multithreading in Python
Bevor wir über sleep()
sprechen Lassen Sie uns in Multithread-Programmen über Prozesse und Threads sprechen.
Ein Computerprogramm ist eine Sammlung von Anweisungen. Ein Prozess ist die Ausführung dieser Anweisungen.
Ein Thread ist eine Teilmenge des Prozesses. Ein Prozess kann einen oder mehrere Threads haben.
Beispiel 3:Python-Multithreading
Alle Programme oben in diesem Artikel sind Singlethread-Programme. Hier ist ein Beispiel für ein Multithread-Python-Programm.
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()
Wenn Sie das Programm ausführen, sieht die Ausgabe in etwa so aus:
Hello Hello Hi Hello Hi Hi
Das obige Programm hat zwei Threads t1 und t2 . Diese Threads werden mit t1.start()
ausgeführt und t2.start()
Aussagen.
Beachten Sie, dass t1 und t2 gleichzeitig ausgeführt werden, erhalten Sie möglicherweise eine andere Ausgabe.
Besuchen Sie diese Seite, um mehr über Multithreading in Python zu erfahren.
time.sleep() in Multithread-Programmen
Die sleep()
Funktion unterbricht die Ausführung des aktuellen Threads für eine bestimmte Anzahl von Sekunden.
Bei Singlethread-Programmen sleep()
setzt die Ausführung des Threads und Prozesses aus. Allerdings unterbricht die Funktion in Multithread-Programmen eher einen Thread als den gesamten Prozess.
Beispiel 4:sleep() in einem Multithread-Programm
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()
Das obige Programm hat zwei Threads. Wir haben time.sleep(0.5)
verwendet und time.sleep(0.75)
um die Ausführung dieser beiden Threads für 0,5 Sekunden bzw. 0,7 Sekunden auszusetzen.
Empfohlene Lektüre: Python time.sleep() schläft Thread
Python