Blog / Python función sleep()

Python función sleep()

por SW Team

Python time sleep

La función time sleep de Python se emplea para retardar la ejecución de un programa. Podemos utilizar la función sleep de Python para pausar la ejecución del programa durante un lapso específico en segundos. Es importante tener en cuenta que la función sleep de Python solo detiene la ejecución del subproceso actual y no del programa en su totalidad.

Sintaxis de la función sleep() de Python

El método sleep() de Python pertenece al módulo time de Python. Para poder utilizar este método, es necesario importar primero dicho módulo. La manera de emplear la función sleep() de Python es la siguiente:

 #Importamos el módulo time
 import time
 tiempo= 4 # 4 segundos
 time.sleep(tiempo)

El argumento del método sleep() se encuentra en segundos. Por lo tanto, al ejecutar la sentencia time.sleep(tiempo), la línea de código siguiente se ejecutará después de "tiempo" (4) segundos.

A continuación, se muestra un ejemplo:

#Importamos el módulo time
import time
print("Antes de declarar la función time.sleep")
time.sleep(4)
print("Después de declarar la función time.sleep")

Si ejecutas el código previo, notarás que la segunda impresión se realiza después de 4 segundos. Por lo tanto, puedes agregar un retraso en tu código según sea necesario. Además, el argumento puede ser un valor decimal para obtener un retraso más preciso. Por ejemplo, si deseas un retraso de 100 milisegundos, es decir, 0.1 segundos, puedes hacerlo de la siguiente manera:

import time
time.sleep(0.100)

cta:cloud_so

Ejemplo de sleep en Python

A continuación, veamos este ejemplo de la función time sleep de Python:

import time
inicio = time.time()
for i in range(10):
    print(i)
    #Haciendo una pausa de 2 segundos
    time.sleep(2)
fin = time.time()
tiempo_transcurrido = fin - inicio
print(f"Tiempo transcurrido = {tiempo_transcurrido:.2f} segundos")

Salida:

0
1
2
3
4
5
6
7
8
9
Tiempo transcurrido = 20.02 segundos

El tiempo transcurrido es superior a 20 porque cada vez que se ejecuta el bucle for, la ejecución se detiene durante 2 segundos. El tiempo extra se debe al tiempo de ejecución del programa, la programación de hilos del sistema operativo, etc.

Establecer diferentes tiempos de retardo con sleep()

En ocasiones, puede resultar conveniente posponer la ejecución con distintos intervalos de tiempo. Para lograrlo, se puede llevar a cabo de la siguiente forma:

import time
for i in [0.5, 0.1, 1, 2]:
   print(f"Esperando {i} segundos")
time.sleep(i)

Salida:

Esperando 0.5 segundos
Esperando 0.1 segundos
Esperando 1 segundos
Esperando 2 segundos

cta:cloud_app_swpanel_smart_d5

Python thread sleep

La función sleep() de Python es esencial para la programación multihilo. A continuación, se presenta un ejemplo sencillo que demuestra cómo la función sleep de Python detiene la ejecución del hilo actual en un entorno de programación multihilo.

import time
from threading import Thread

class Trabajador(Thread):
def run(self):
    for x in range(0, 11):
        print(x)
        time.sleep(1)    

class Mesero(Thread):
def run(self):
    for x in range(100, 103):
        print(x)
        time.sleep(5)

print("Iniciando el hilo del Trabajador")
Trabajador().start()
print("Iniciando el hilo del Mesero")
Mesero().start()
print("Hecho")

Salida:

Iniciando el hilo del Trabajador
0
Iniciando el hilo del Mesero
100
Hecho
1
2
3
4
5
101
6
7
8
9
10
102

En la salida de la ejecución se puede observar claramente que solo los hilos están siendo detenidos en la ejecución y no todo el programa debido a la función sleep de Python.

cta:hosting

i