Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Industrial programming >> python

Dominar time.sleep() en Python: Mejores Prácticas, Multihilo y Ejemplos Reales

Python time.sleep()

El método time.sleep() pausa el hilo actual durante un número especificado de segundos.

El módulo time de Python ofrece una gama de utilidades para trabajar con el tiempo. Entre ellas, time.sleep() es esencial para añadir retrasos deliberados, sincronizar hilos o limitar operaciones.

Ejemplo 1: Uso Básico

import time

print("Impreso inmediatamente.")
time.sleep(2.4)
print("Impreso después de 2.4 segundos.")

Este script simple demuestra que time.sleep() acepta un argumento de punto flotante. En Python 3.5 y posteriores, la función garantiza una duración mínima de sueño; versiones anteriores pueden dormir ligeramente más.

Ejemplo 2: Reloj Digital

import time

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

El bucle imprime la hora local actual cada segundo. Para evitar saturar la terminal, la versión mejorada actualiza la misma línea:

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)

Consulta la documentación de Python para time.sleep() para más detalles.

Entendiendo los Hilos

Un proceso es un programa en ejecución; los hilos son unidades ligeras dentro de ese proceso. Múltiples hilos pueden ejecutarse concurrentemente, compartiendo el mismo espacio de memoria.

Ejemplo 3: Multihilo Simple

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()

Como t1 y t2 se ejecutan concurrentemente, el orden de salida puede variar en cada ejecución.

time.sleep() en Contextos Multihilo

En programas de un solo hilo, time.sleep() detiene todo el proceso. En un entorno multihilo, solo se pausa el hilo que llama, permitiendo que otros hilos continúen.

Ejemplo 4: Pausar Hilos de Forma Diferente

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()

Aquí, un hilo duerme 0.5 s mientras que el otro duerme 0.7 s, ilustrando ritmos independientes.

Para más información sobre hilos, consulta el módulo threading de Python.

python

  1. Dominando tipos de datos en Python: Guía práctica
  2. Dominando operadores en Python: Guía completa
  3. Dominando la sentencia pass en Python: Guía práctica
  4. Dominando argumentos de funciones en Python: Posicionales, por palabra clave y por defecto
  5. Dominando Diccionarios en Python: Creación, Manipulación y Técnicas Avanzadas
  6. Dominando Iteradores en Python: Cómo Funcionan y Cómo Crear los Tuyos
  7. Explicación de Closures en Python: Cómo las Funciones Anidadas Capturan Variables
  8. Dominando datetime en Python: Guía Práctica de Fechas, Horas y Zonas Horarias
  9. Obtener la Fecha y Hora Actual en Python: Guía Práctica
  10. Python: Obtener Hora Actual y Datos de Zona Horaria Fácilmente
  11. Dominar el Módulo time de Python: Funciones, Structs y Ejemplos Prácticos