Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Industrial programming >> Python

Python's time.sleep() onder de knie krijgen: best practices, multithreading en real-world voorbeelden

Python time.sleep()

De time.sleep()-functie pauzeert de huidige thread voor een opgegeven aantal seconden.

Python's time-module biedt een reeks hulpmiddelen voor het werken met tijd. Daaronder is time.sleep() essentieel voor het toevoegen van bewuste vertragingen, het synchroniseren van threads of het drosselen van operaties.

Voorbeeld 1: Basisgebruik

import time

print("Direct geprint.")
time.sleep(2.4)
print("Geprint na 2.4 seconden.")
time.sleep() een floating-point-argument accepteert. In Python 3.5 en later garandeert de functie een minimale slaapduur; eerdere versies kunnen iets langer slapen.

Voorbeeld 2: Digitale klok

import time

while True:
    local = time.localtime()
    print(time.strftime("%I:%M:%S %p", local))
    time.sleep(1)

De lus print de huidige lokale tijd elke seconde. Om de terminal niet te vervuilen, werkt de verbeterde versie de dezelfde regel bij:

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)

Zie Python-documentatie voor time.sleep() voor diepere inzichten.

Threads begrijpen

Een proces is een uitvoerend programma; threads zijn lichtgewicht eenheden binnen dat proces. Meerdere threads kunnen gelijktijdig draaien, met gedeelde geheugenruimte.

Voorbeeld 3: Eenvoudig 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()

Omdat t1 en t2 concurrent uitgevoerd worden, kan de output-volgorde elke run variëren.

time.sleep() in multithreaded contexten

In single-threaded programma's halt time.sleep() het hele proces. In een multithreaded omgeving wordt alleen de aanroepende thread gepauzeerd, zodat andere threads doorgaan.

Voorbeeld 4: Threads verschillende pauzes geven

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 slaapt de ene thread 0,5 s en de andere 0,7 s, wat onafhankelijke pacing illustreert.

Voor meer over threading, zie Python's threading-module.

Python

  1. Python Datatypes onder de knie krijgen: Een praktische gids
  2. Python Operators onder de knie krijgen: Een uitgebreide gids
  3. Python Pass Statement onder de knie krijgen: Een praktische gids
  4. Python Functie-argumenten onder de knie krijgen: Positionele, Keyword en Default Parameters
  5. Python-dictionaries beheersen: aanmaken, manipuleren en geavanceerde technieken
  6. Python-iterators: hoe ze werken en hoe je je eigen maakt
  7. Python-closures uitgelegd: hoe geneste functies variabelen vangen
  8. Python datetime beheersen: praktische gids voor datums, tijden en tijdzones
  9. Huidige datum en tijd ophalen in Python: een praktische gids
  10. Python: Huidige tijd en tijdzonedata eenvoudig ophalen
  11. Python's time-module beheersen: functies, structs en praktische voorbeelden