La funció time sleep de Python es fa servir per retardar l'execució d'un programa. Podem fer servir la funció sleep de Python per pausar l'execució del programa durant un lapse específic en segons. És important tenir en compte que la funció sleep de Python només atura l'execució del subprocés actual i no del programa íntegrament.
El mètode sleep() de Python pertany al mòdul time de Python. Per poder utilitzar aquest mètode, cal importar primer aquest mòdul. La manera de fer servir la funció sleep() de Python és la següent:
#Importem el mòdul time
import time
temps= 4 # 4 segons
time.sleep(temps)
L'argument del mètode sleep() es troba en segons. Per tant, en executar la sentència time.sleep(temps), la línia de codi següent sexecutarà després de "temps" (4) segons.
A continuació, es mostra un exemple:
#Importem el mòdul time
import time
print("Abans de declarar la funció time.sleep")
time.sleep(4)
print("Després de declarar la funció time.sleep")
Si executes el codi previ, notaràs que la segona impressió es fa després de 4 segons. Per tant, pots afegir un retard al teu codi segons calgui. A més, l'argument pot ser un valor decimal per obtenir un retard més precís. Per exemple, si vols un retard de 100 mil·lisegons, és a dir, 0.1 segons, pots fer-ho de la següent manera
import time
time.sleep(0.100)
cta:cloud_so
A continuació, veiem aquest exemple de la funció time sleep de Python:
import time
inicio = time.time()
for i in range(10):
print(i)
#Fent una pausa de 2 segons
time.sleep(2)
fin = time.time()
temps_transcorregut = fi - inici
print(f"Temps transcorregut = {temps_transcorregut:.2f} segons")
Sortida:
0
1
2
3
4
5
6
7
8
9
Temps transcorregut = 20.02 segons
El temps transcorregut és superior a 20 perquè cada cop que s'executa el bucle for, l'execució s'atura durant 2 segons. El temps extra es deu al temps d'execució del programa, la programació de fils del sistema operatiu, etc.
De vegades, pot resultar convenient posposar l'execució amb diferents intervals de temps. Per aconseguir-ho, es pot dur a terme de la manera següent:
import time
for i in [0.5, 0.1, 1, 2]:
print(f"Esperant {i} segons")
time.sleep(i)
Sortida:
Esperant 0.5 segons
Esperant 0.1 segons
Esperant 1 segons
Esperant 2 segons
cta:cloud_app_swpanel_smart_d5
La funció sleep() de Python és essencial per a la programació multifil. A continuació, es presenta un exemple senzill que demostra com la funció sleep de Python atura l'execució del fil actual en un entorn de programació multifil.
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("Iniciant el fil del Treballador")
Treballador().start()
print("Iniciant el fil del Mesero")
Mesero().start()
print("Fet")
Sortida:
Iniciant el fil del Treballador
0
Iniciant el fil del Mesero
100
Fet
1
2
3
4
5
101
6
7
8
9
10
102
A la sortida de l'execució es pot observar clarament que només els fils estan sent detinguts a l'execució i no tot el programa a causa de la funció sleep de Python.
cta:hosting