Python sleep()

Table of Contents

 

Die Funktion sleep() unterbricht (wartet) die Ausführung des aktuellen Threads für eine bestimmte Anzahl von Sekunden.

 

Python hat ein Modul namens time die mehrere nützliche Funktionen zur Handhabung zeitbezogener Aufgaben bereitstellt. 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.

 


 

Example 1: Python sleep()

 

import time

print("Sofort gedruckt.")
time.sleep(2.4)
print("Gedruckt nach 2,4 Sekunden.")

 

So funktioniert dieses Programm:

 

  • "Sofort gedruckt" is printed
  • Suspends (Delays) execution for 2.4 seconds.
  • "Gedruckt nach 2,4 Sekunden" is printed.

 

Wie Sie am obigen Beispiel sehen können, sleep() nimmt als Argument eine Gleitkommazahl an.

 

Before Python 3.5, kann die tatsächliche Aussetzungszeit kleiner sein als das Argument, das dem time() Funktion.

Since Python 3.5, beträgt die Aussetzzeit mindestens die angegebenen Sekunden.

 


 

Beispiel 2: Python create a digital clock

 

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 gedruckt. Dann wartet das Programm 1 Sekunde. Auch hier wird die aktuelle Ortszeit berechnet und gedruckt. Dieser Prozess geht weiter.

Wenn Sie das Programm ausführen, sieht die Ausgabe 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 digital clock in Python shell.

 


 

 

Multithreading in Python

 

Bevor wir darüber sprechen sleep() Sprechen wir in Multithread-Programmen über Prozesse und Threads.

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 oben genannten Programme in diesem Artikel sind Single-Thread-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, wird die Ausgabe in etwa so aussehen:

Hello
Hello
Hi
Hello
Hi
Hi

 

Das obige Programm hat zwei Threads t1 und t2. Diese Threads werden ausgeführt mit t1.start() and t2.start() statements.
Beachten Sie, dass, t1 and t2 gleichzeitig ausführen und Sie erhalten möglicherweise eine andere Ausgabe.

Visit this page to learn more about Multithreading in Python.

 


 

 

time.sleep() in multithreaded programs

 

Die sleep() Funktion suspendiert die Ausführung des aktuellen Threads für eine bestimmte Anzahl von Sekunden.

 

Im Falle von Single-Thread-Programmen, sleep() suspendiert die Ausführung des Threads und des Prozesses. Bei Multithreading-Programmen setzt die Funktion jedoch einen Thread und nicht den gesamten Prozess aus.

 


 

Beispiel 4: sleep() in a multithreaded program

 

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 benutzttime.sleep(0.5) und time.sleep(0.75) um die Ausführung dieser beiden Threads für 0,5 Sekunden bzw. 0,7 Sekunden zu suspendiert.

 

Literatur-Empfehlungen: Python time.sleep() sleeps thread