Pythons time.sleep() meistern: Best Practices, Multithreading und Praxisbeispiele
Python time.sleep()
Die Funktion time.sleep() pausiert den aktuellen Thread für eine angegebene Anzahl an Sekunden.
Pythons time-Modul bietet eine Reihe von Utilities für die Arbeit mit Zeit. Darunter ist time.sleep() essenziell für das Hinzufügen bewusster Verzögerungen, die Synchronisation von Threads oder das Drosseln von Operationen.
Beispiel 1: Grundlegende Verwendung
import time
print("Sofort ausgegeben.")
time.sleep(2.4)
print("Nach 2,4 Sekunden ausgegeben.")
Dieses einfache Skript demonstriert, dass time.sleep() ein Gleitkomma-Argument akzeptiert. In Python 3.5 und höher garantiert die Funktion eine minimale Schlafdauer; frühere Versionen können etwas länger schlafen.
Beispiel 2: Digitale Uhr
import time
while True:
local = time.localtime()
print(time.strftime("%I:%M:%S %p", local))
time.sleep(1)
Die Schleife gibt die aktuelle Ortszeit jede Sekunde aus. Um das Terminal nicht zu überladen, aktualisiert die verbesserte Version dieselbe Zeile:
import time
while True:
local = time.localtime()
print(time.strftime("%I:%M:%S %p", local), end="", flush=True)
print("\r", end="", flush=True)
time.sleep(1)
Siehe Python-Dokumentation für time.sleep() für tiefere Einblicke.
Threads verstehen
Ein Prozess ist ein ausführendes Programm; Threads sind leichte Einheiten innerhalb dieses Prozesses. Mehrere Threads können parallel laufen und teilen sich denselben Speicherbereich.
Beispiel 3: Einfaches Multithreading
import threading
def greet_hello():
for _ in range(3):
print("Hello")
def greet_hi():
for _ in range(3):
print("Hi")
t1 = threading.Thread(target=greet_hello)
t2 = threading.Thread(target=greet_hi)
t1.start()
t2.start()
Da t1 und t2 parallel ausgeführt werden, kann die Ausgabe-Reihenfolge bei jedem Lauf variieren.
time.sleep() in multithreaded Kontexten
In single-threaded Programmen hält time.sleep() den gesamten Prozess an. In einer multithreaded Umgebung wird nur der aufrufende Thread pausiert, sodass andere Threads fortfahren können.
Beispiel 4: Threads unterschiedlich pausieren
import threading, time
def say_hello():
for _ in range(4):
time.sleep(0.5)
print("Hello")
def say_hi():
for _ in range(4):
time.sleep(0.7)
print("Hi")
t1 = threading.Thread(target=say_hello)
t2 = threading.Thread(target=say_hi)
t1.start()
t2.start()
Hier schläft ein Thread 0,5 s, der andere 0,7 s, was unabhängiges Tempo veranschaulicht.
Für mehr zu Threading siehe Pythons threading-Modul.
Python
- Python-Datentypen meistern: Praxisleitfaden
- Python-Operatoren meistern: Umfassender Leitfaden
- Python pass-Statement meistern: Praxisleitfaden
- Python-Funktionsargumente meistern: Positional, Keyword & Default-Parameter
- Python-Dictionaries meistern: Erstellung, Manipulation und fortgeschrittene Techniken
- Python Iteratoren meistern: Funktionsweise und Erstellung eigener Iteratoren
- Python Closures erklärt: Wie verschachtelte Funktionen Variablen erfassen
- Python datetime meistern: Praktischer Leitfaden zu Datumsangaben, Zeiten und Zeitzonen
- Aktuelles Datum und Uhrzeit in Python abrufen: Praktischer Leitfaden
- Python: Aktuelle Uhrzeit und Zeitzonendaten einfach abrufen