Funzione Python sleep () (con esempi)

La funzione sleep () sospende (attende) l'esecuzione del thread corrente per un dato numero di secondi.

Python ha un modulo chiamato time che fornisce diverse funzioni utili per gestire le attività legate al tempo. Una delle funzioni popolari tra loro è sleep().

La sleep()funzione sospende l'esecuzione del thread corrente per un determinato numero di secondi.

Esempio 1: Python sleep ()

  import time print("Printed immediately.") time.sleep(2.4) print("Printed after 2.4 seconds.") 

Ecco come funziona questo programma:

  • "Printed immediately" viene stampato
  • Sospende (ritarda) l'esecuzione per 2,4 secondi.
  • "Printed after 2.4 seconds" viene stampato.

Come puoi vedere dall'esempio sopra, sleep()prende un numero in virgola mobile come argomento.

Prima di Python 3.5 , il tempo di sospensione effettivo poteva essere inferiore all'argomento specificato nella time()funzione.

A partire da Python 3.5 , il tempo di sospensione sarà di almeno i secondi specificati.

Esempio 2: Python crea un orologio digitale

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

Nel programma sopra, abbiamo calcolato e stampato l'ora locale corrente all'interno del ciclo while infinito. Quindi, il programma attende 1 secondo. Anche in questo caso, l'ora locale corrente viene calcolata e stampata. Questo processo continua.

Quando esegui il programma, l'output sarà qualcosa del tipo:

 02:10:50 PM 02:10:51 PM 02:10:52 PM 02:10:53 PM 02:10:54 PM … 

Ecco una versione migliore leggermente modificata del programma sopra.

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

Per saperne di più, visita l'orologio digitale nella shell di Python.

Multithreading in Python

Prima di parlare di sleep()programmi multithread, parliamo di processi e thread.

Un programma per computer è una raccolta di istruzioni. Un processo è l'esecuzione di quelle istruzioni.

Un thread è un sottoinsieme del processo. Un processo può avere uno o più thread.

Esempio 3: multithreading Python

Tutti i programmi sopra in questo articolo sono programmi a thread singolo. Ecco un esempio di un programma Python multithread.

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

Quando esegui il programma, l'output sarà qualcosa del tipo:

 Ciao ciao ciao ciao ciao ciao 

Il programma sopra ha due thread t1 e t2. Questi thread vengono eseguiti utilizzando le istruzioni t1.start()e t2.start().

Nota che t1 e t2 vengono eseguiti contemporaneamente e potresti ottenere un output diverso.

Visita questa pagina per saperne di più sul multithreading in Python.

time.sleep () nei programmi multithread

La sleep()funzione sospende l'esecuzione del thread corrente per un determinato numero di secondi.

In caso di programmi a thread singolo, sleep()sospende l'esecuzione del thread e del processo. Tuttavia, la funzione sospende un thread anziché l'intero processo nei programmi multithread.

Esempio 4: sleep () in un programma multithread

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

Il programma sopra ha due thread. Abbiamo utilizzato time.sleep(0.5)e time.sleep(0.75)per sospendere l'esecuzione di questi due thread rispettivamente per 0,5 secondi e 0,7 secondi.

Lettura consigliata: Python time.sleep () sleeps thread

Articoli interessanti...